千家信息网

pandas对齐运算

发表于:2024-11-19 作者:千家信息网编辑
千家信息网最后更新 2024年11月19日,Pandas的对齐运算是数据清洗的重要过程,可以按索引对齐进行运算,如果没对齐的位置则补NaN,最后也可以填充NaNSeries的对齐运算1. Series按行、索引对齐示例代码:s1 = pd.Se
千家信息网最后更新 2024年11月19日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)

运行结果:

s1: 0    101    112    123    134    145    156    167    178    189    19dtype: int64s2: 0    201    212    223    234    24dtype: int64

2. Series的对齐运算

示例代码:

s1 + s2

运行结果:

0    30.01    32.02    34.03    36.04    38.05     NaN6     NaN7     NaN8     NaN9     NaNdtype: 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    b0  1.0  1.01  1.0  1.0df2:      a    b    c0  1.0  1.0  1.01  1.0  1.0  1.02  1.0  1.0  1.0

2. DataFrame的对齐运算

示例代码:

df1 + df2

运行结果:

     a    b   c0  2.0  2.0 NaN1  2.0  2.0 NaN2  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)print(s2)s1.add(s2, fill_value = -1)print(df1)print(df2)df1.sub(df2, fill_value = 2.)

运行结果:

# print(s1)0    101    112    123    134    145    156    167    178    189    19dtype: int64# print(s2)0    201    212    223    234    24dtype: int64# s1.add(s2, fill_value = -1)0    30.01    32.02    34.03    36.04    38.05    14.06    15.07    16.08    17.09    18.0dtype: float64# print(df1)     a    b0  1.0  1.01  1.0  1.0# print(df2)     a    b    c0  1.0  1.0  1.01  1.0  1.0  1.02  1.0  1.0  1.0# df1.sub(df2, fill_value = 2.)     a    b    c0  0.0  0.0  1.01  0.0  0.0  1.02  1.0  1.0  1.0
0