我试图从同一数据框中的另一列中减去数据框中的一列。但是,我需要一些额外的标准。例如,如果两列都是NaN,那么我希望结果为NaN。如果列' 2月'是Nan,但相应的' Jan'是一个数字,然后我想把' Feb'变为零,用于计算,因此结果只是'的全部值。简'由于计算误差值而不是NaN - Nan。
为了完整性,还有一些额外的信息:Jan总是高于2月。所以如果有2月号,则总是有更高的Jan数,在这种情况下Jan永远不是NaN。
下面是一些简单的相同数据,可以尝试和说明。
import pandas as pd
sales = [{'account': 'Jones LLC', 'Jan': 222, },
{'account': 'Alpha Co', 'Jan': 240, 'Feb': 50, },
{'account': 'Delta Co' },
{'account': 'Blue Inc', 'Jan': 150, }]
df = pd.DataFrame(sales)
df = df[['account', 'Jan', 'Feb' ]]
df['SubtractionResult'] = df['Jan']-df['Feb']
print (df)
account Jan Feb SubtractionResult[181]:
0 Jones LLC 222.0 NaN NaN
1 Alpha Co 240.0 50.0 190.0
2 Delta Co NaN NaN NaN
3 Blue Inc 150.0 NaN NaN
我希望结果看起来像这样:
account Jan Feb SubtractionResult[181]:
0 Jones LLC 222.0 NaN 222.0
1 Alpha Co 240.0 50.0 190.0
2 Delta Co NaN NaN NaN
3 Blue Inc 150.0 NaN 150.0
答案 0 :(得分:3)
您可以在 Feb 列中将缺失值替换为零,然后执行减法操作:
df['SubtractionResult'] = df['Jan'] - df['Feb'].fillna(0)
df
# account Jan Feb SubtractionResult
#0 Jones LLC 222.0 NaN 222.0
#1 Alpha Co 240.0 50.0 190.0
#2 Delta Co NaN NaN NaN
#3 Blue Inc 150.0 NaN 150.0