1. 程式人生 > >pandas資料對齊

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的對齊運算

示例程式碼:

# 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

 

執行結果:

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

 

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

1. fill_value

使用addsubdivmul的同時,

通過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