gpt4 book ai didi

Python pandas 对带有条件的列进行减法计算

转载 作者:行者123 更新时间:2023-11-30 22:35:36 25 4
gpt4 key购买 nike

我正在尝试从同一数据框中的另一列中减去数据框中的一列。但是,我需要一些额外的标准。例如,如果两列都是 NaN,那么我希望结果为 NaN。如果列“Feb”是 Nan,但相应的“Jan”是一个数字,那么我想将“Feb”转换为零进行计算,因此结果只是“Jan”的完整值,而不是 NaN,因为值计算错误 - Nan。

为了完整起见,一些附加信息:一月总是高于二月。因此,如果有二月数字,则一月数字总是更高,在这种情况下,一月永远不会是 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

最佳答案

您可以将 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

关于Python pandas 对带有条件的列进行减法计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44511056/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com