Pandas:Series和DataFrame間的算術元素
阿新 • • 發佈:2019-02-15
import numpy as np
import pandas as pd
from pandas import Series,DataFrame
一、Series與Series
s1 = Series([1,3,5,7],index=['a','b','c','d'])
s2 = Series([2,4,6,8],index=['a','b','c','e'])
索引對齊項相加,不對齊項的值取NaN
s1+s2
a 3.0
b 7.0
c 11.0
d NaN
e NaN
dtype: float64
二、DataFrame與DataFrame
data1 = {'水果':['蘋果','梨','草莓'],
'數量':[3,2,5],
'價格':[10,9,8]}
data2 = {'數量':[3,2,5,6],
'價格':[10,9,8,7]}
df1 = DataFrame(data1)
df2 = DataFrame(data2)
在行和列上同時對齊後進行計算,如果找不到對應項則取NaN
print(df1*df2)
價格 數量 水果 0 100.0 9.0 NaN 1 81.0 4.0 NaN 2 64.0 25.0 NaN 3 NaN NaN NaN
三、Series與DataFrame
1.利用廣播實現DataFrame與某行的運算
print(df2+df2.iloc[0]) # 將第0行加到所有行上
價格 數量
0 20 6
1 19 5
2 18 8
3 17 9
2.利用廣播實現DataFrame與某列的運算(指定軸axis=0)
print(df2.sub(df2.iloc[:,0],axis=0))
價格 數量
0 0 -7
1 0 -7
2 0 -3
3 0 -1
3.運算時如果無法對齊,則填充NaN
s = Series([1,1,1 ],index=['數量','價格','重量'])
print(df2+s)
價格 數量 重量
0 11 4 NaN
1 10 3 NaN
2 9 6 NaN
3 8 7 NaN