from pandas import Index
from pandas import Series,DataFrame
import numpy as np
import pandas as pd
#DataFrame算术:不重叠部分为NaN,重叠部分元素运算'
x=DataFrame(np.arange(9).reshape(3,3),
columns=['A','B','C'],
index=['a','b','c'])
y=DataFrame(np.arange(12).reshape((4,3)),
columns=['A','B','C'],
index=['a','b','c','d'])print(x)'''
A B C
a 0 1 2
b 3 4 5
c 6 7 8
'''print(y)'''
A B C
a 0 1 2
b 3 4 5
c 6 7 8
d 9 10 11
'''print(x+y)'''
A B C
a 0.0 2.0 4.0
b 6.0 8.0 10.0
c 12.0 14.0 16.0
d NaN NaN NaN
'''#对x+y的不重叠部分填充,不是对结果NaN填充print(x.add(y,fill_value =0))# x不变化'''
A B C
a 0.0 2.0 4.0
b 6.0 8.0 10.0
c 12.0 14.0 16.0
d 9.0 10.0 11.0
'''#DataFrame与Series运算:每行/列进行运算
frame = DataFrame(np.arange(9).reshape((3,3)),
columns =['A','B','C'],
index =['a','b','c'])print(frame)'''
A B C
a 0 1 2
b 3 4 5
c 6 7 8
'''
series= frame.ix[0]print(series)'''
A 0
B 1
C 2
Name: a, dtype: int32
'''print(frame-series)# 默认按行运算'''
A B C
a 0 0 0
b 3 3 3
c 6 6 6
'''
series2 = Series(range(4), index =['A','B','C','D'])print(frame+series2)# 按行运算:缺失列则为NaN'''
A B C D
a 0 2 4 NaN
b 3 5 7 NaN
c 6 8 10 NaN
'''
series3 = frame.A
print(series3)'''
a 0
b 3
c 6
Name: A, dtype: int32
'''print( frame.sub(series3,axis =0))# 按列运算 ??(frame的行-series3)'''
A B C
a 0 1 2
b 0 1 2
c 0 1 2
'''