首页 > 解决方案 > 熊猫仅在非 nan 时减去列值

问题描述

我有一个数据框df如下,大约有 200 列:

Date        Run_1   Run_295 Prc
2/1/2020                    3
2/2/2020    2               6
2/3/2020            5       2

我只想在列非南或非空时Prc从列中减去列,以获得以下信息:Run_1 Run_295 Run_300

Date        Run_1   Run_295 
2/1/2020                            
2/2/2020    -4                      
2/3/2020            3               

我不确定如何进行上述操作。

重现数据框的代码:

import pandas as pd
from io import StringIO
s = """Date,Run_1,Run_295,Prc
2/1/2020,,,3
2/2/2020,2,,6
2/3/2020,,5,2"""
df = pd.read_csv(StringIO(s))
print(df)

标签: pandaspython-3.5

解决方案


你可以简单地减去它。它完全符合您的要求:

df.Run_1-df.Prc

这是您的输出的完整代码:

df.Run_1= df.Run_1-df.Prc
df.Run_295= df.Run_295-df.Prc
df.drop('Prc', axis=1, inplace=True)

df

    Date        Run_1   Run_295
0   2/1/2020    NaN     NaN
1   2/2/2020    -4.0    NaN
2   2/3/2020    NaN     3.0

推荐阅读