看过来
《pandas 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
__add__()
是 pandas 中用于实现加法运算的一个特殊方法,通常不直接调用,而是通过 + 运算符触发。该方法可以在 DataFrame、Series 等 pandas 对象之间进行元素级的加法运算,也可以与标量(如整数、浮点数)进行加法。
参数 other 为 scalar, sequence, Series, dict or DataFrame,表示要添加到 DataFrame 的对象。
例如:
df = pd.DataFrame({'height': [1.5, 2.6], 'weight': [500, 800]},
index=['elk', 'moose'])
df
'''
height weight
elk 1.5 500
moose 2.6 800
'''
添加标量会影响所有行和列。
df[['height', 'weight']] + 1.5
'''
height weight
elk 3.0 501.5
moose 4.1 801.5
'''
列表的每个元素都按顺序添加到DataFrame的一列中。
df[['height', 'weight']] + [0.5, 1.5]
'''
height weight
elk 2.0 501.5
moose 3.1 801.5
'''
字典的键根据列名与DataFrame对齐;字典中的每个值都被添加到相应的列中。
df[['height', 'weight']] + {'height': 0.5, 'weight': 1.5}
'''
height weight
elk 2.0 501.5
moose 3.1 801.5
'''
当other是Series时,other的索引与DataFrame的列对齐。
s1 = pd.Series([0.5, 1.5], index=['weight', 'height'])
df[['height', 'weight']] + s1
'''
height weight
elk 3.0 500.5
moose 4.1 800.5
'''
即使other的索引与DataFrame的索引相同,Series也不会重新定向。如果需要索引对齐,DataFrame.add()
应该与axis='index'一起使用。
s2 = pd.Series([0.5, 1.5], index=['elk', 'moose'])
df[['height', 'weight']] + s2
'''
elk height moose weight
elk NaN NaN NaN NaN
moose NaN NaN NaN NaN
'''
df[['height', 'weight']].add(s2, axis='index')
'''
height weight
elk 2.0 500.5
moose 4.1 801.5
'''
当other是DataFrame时,列名和索引都会对齐。
other = pd.DataFrame({'height': [0.2, 0.4, 0.6]},
index=['elk', 'moose', 'deer'])
df[['height', 'weight']] + other
'''
height weight
deer NaN NaN
elk 1.7 NaN
moose 3.0 NaN
'''
https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.__add__.html
更新时间:Aug. 9, 2024, 2:45 p.m. 标签:pandas python 加法 特殊方法