Python pandas.DataFrame.add函数方法的使用

pandas.DataFrame.add 函数是用来在两个 DataFrame 或 DataFrame 和一个标量(数值)之间进行逐元素加法运算的。这个方法可以灵活地对齐不同索引的 DataFrame,并可以填充缺失值。本文主要介绍一下Pandas中pandas.DataFrame.add()方法的使用。

DataFrame.add(other, axis='columns', level=None, fill_value=None)

添加dataframe和其他元素(二进制操作符add)。

等价于dataframe + other,但是支持用fill_value替换其中一个输入中缺失的数据。使用反向版本,radd

在灵活的包装器(add, sub, mul, div, mod, pow)到算术运算符:+-*///%**

参数:

other scalar, sequence, Series, 或 DataFrame

任何单个或多个元素数据结构,或类似列表对象。

axis : {0 或 ‘index’, 1 或 ‘columns’}

不论通过index(0 或 ‘index’)或columns(1 or ‘columns’)进行比较。

 对于Series输入,axis匹配Series索引。

level : intlabel

跨level广播,匹配传递的MultiIndex level的索引值。

fill_value : floatNone, 默认 None

在计算之前,用这个值填充现有的缺失值(NaN),

以及成功进行DataFrame对齐所需的任何新元素。

如果两个对应的DataFrame位置中的数据都丢失,则结果将丢失。

返回:

DataFrame

算术运算的结果。

注意

不匹配的索引将被合并在一起

例子,

以下是使用 pandas.DataFrame.add 函数和其他操作符版本的示例:

1)添加标量

使用操作符版本和 add 函数相加:

import pandas as pd

df = pd.DataFrame({
    'angles': [0, 3, 4],
    'degrees': [360, 180, 360]
}, index=['circle', 'triangle', 'rectangle'])

print("原始 DataFrame:")
print(df)
print("\nDataFrame + 1:")
print(df + 1)

print("\nDataFrame.add(1):")
print(df.add(1))

2)除以常数的倒数形式

import pandas as pd

df = pd.DataFrame({
    'angles': [0, 3, 4],
    'degrees': [360, 180, 360]
}, index=['circle', 'triangle', 'rectangle'])

print("原始 DataFrame:")
print(df)
print("\nDataFrame.div(10):")
print(df.div(10))

print("\nDataFrame.rdiv(10):")
print(df.rdiv(10))

3)用操作符版本按 axis 减去列表和序列

import pandas as pd

df = pd.DataFrame({
    'angles': [0, 3, 4],
    'degrees': [360, 180, 360]
}, index=['circle', 'triangle', 'rectangle'])

print("原始 DataFrame:")
print(df)
print("\nDataFrame - [1, 2]:")
print(df - [1, 2])

print("\nDataFrame.sub([1, 2], axis='columns'):")
print(df.sub([1, 2], axis='columns'))

print("\nDataFrame.sub(pd.Series([1, 1, 1], index=['circle', 'triangle', 'rectangle']), axis='index'):")
print(df.sub(pd.Series([1, 1, 1], index=['circle', 'triangle', 'rectangle']), axis='index'))

4)将不同形状的 DataFrame 与运算符版本相乘

import pandas as pd

df = pd.DataFrame({
    'angles': [0, 3, 4],
    'degrees': [360, 180, 360]
}, index=['circle', 'triangle', 'rectangle'])

print("原始 DataFrame:")
print(df)

other = pd.DataFrame({
    'angles': [0, 3, 4]
}, index=['circle', 'triangle', 'rectangle'])

print("\nOther DataFrame:")
print(other)

print("\nDataFrame * Other DataFrame:")
print(df * other)

print("\nDataFrame.mul(other, fill_value=0):")
print(df.mul(other, fill_value=0))

5)除以一个 MultiIndex 的 level

import pandas as pd

df = pd.DataFrame({
    'angles': [0, 3, 4],
    'degrees': [360, 180, 360]
}, index=['circle', 'triangle', 'rectangle'])

print("原始 DataFrame:")
print(df)
df_multindex = pd.DataFrame({
    'angles': [0, 3, 4, 4, 5, 6],
    'degrees': [360, 180, 360, 360, 540, 720]
}, index=[['A', 'A', 'A', 'B', 'B', 'B'],
          ['circle', 'triangle', 'rectangle', 'square', 'pentagon', 'hexagon']])

print("\nMultiIndex DataFrame:")
print(df_multindex)

print("\nDataFrame.div(df_multindex, level=1, fill_value=0):")
print(df.div(df_multindex, level=1, fill_value=0))

推荐阅读
cjavapy编程之路首页