天天看點

資料分析工具Pandas(3):Pandas的對齊運算

資料分析工具Pandas(1):Pandas的資料結構

資料分析工具Pandas(2):Pandas的索引操作

資料分析工具Pandas(3):Pandas的對齊運算

Pandas的對齊運算

是資料清洗的重要過程,可以按索引對齊進行運算,如果沒對齊的位置則補NaN,最後也可以填充NaN

Series的對齊運算

1. Series 按行、索引對齊

s1 = pd.Series(range(10, 20), index = range(10))
s2 = pd.Series(range(20, 25), index = range(5))
 
print('s1: ' )
print(s1)
 
print('') 
 
print('s2: ')
print(s2)      

運作結果:

s1: 
0    10
1    11
2    12
3    13
4    14
5    15
6    16
7    17
8    18
9    19
dtype: int64
 
s2: 
0    20
1    21
2    22
3    23
4    24
dtype: int64      

2. Series的對齊運算2. Series的對齊運算

# Series 對齊運算
s1 + s2      
0    30.0
1    32.0
2    34.0
3    36.0
4    38.0
5     NaN
6     NaN
7     NaN
8     NaN
9     NaN
dtype: float64      

DataFrame的對齊運算

1. DataFrame按行、列索引對齊

df1 = pd.DataFrame(np.ones((2,2)), columns = ['a', 'b'])
df2 = pd.DataFrame(np.ones((3,3)), columns = ['a', 'b', 'c'])
 
print('df1: ')
print(df1)
 
print('') 
print('df2: ')
print(df2)      
df1: 
     a    b
0  1.0  1.0
1  1.0  1.0
 
df2: 
     a    b    c
0  1.0  1.0  1.0
1  1.0  1.0  1.0
2  1.0  1.0  1.0      

2. DataFrame的對齊運算

# DataFrame對齊操作
df1 + df2# DataFrame對齊操作
df1 + df2      

運作結果:運作結果:

a    b   c
0  2.0  2.0 NaN
1  2.0  2.0 NaN
2  NaN  NaN NaN      

填充未對齊的資料進行運算

1. fill_value

使用

add

,

sub

div

mul

的同時,

通過

fill_value

指定填充值,未對齊的資料将和填充值做運算
print(s1)
print(s2)
s1.add(s2, fill_value = -1)
 
print(df1)
print(df2)
df1.sub(df2, fill_value = 2.)      
# print(s1)
0    10
1    11
2    12
3    13
4    14
5    15
6    16
7    17
8    18
9    19
dtype: int64
 
# print(s2)
0    20
1    21
2    22
3    23
4    24
dtype: int64
 
# s1.add(s2, fill_value = -1)
0    30.0
1    32.0
2    34.0
3    36.0
4    38.0
5    14.0
6    15.0
7    16.0
8    17.0
9    18.0
dtype: float64
 
 
# print(df1)
     a    b
0  1.0  1.0
1  1.0  1.0
 
# print(df2)
     a    b    c
0  1.0  1.0  1.0
1  1.0  1.0  1.0
2  1.0  1.0  1.0
 
 
# df1.sub(df2, fill_value = 2.)
     a    b    c
0  0.0  0.0  1.0
1  0.0  0.0  1.0
2  1.0  1.0  1.0