我有一个包含2列的 Dataframe 。如何创建第三列:
1.如果存在col1或col2值,则采用其中之一
1.如果两者都存在,则取平均值
1.如果两者都不存在,则保留NaN
最后,我想把它存储在df ['col3']中。我试过了,但是值是错误的。
df['col3']=pd.concat([df['col2'], df['col1']]).groupby(level=0).mean()
我该怎么做?
time col1 col2
2000-01-31 389.5400 NaN
2000-02-29 387.7700 NaN
2000-03-31 386.6600 250.2
2000-04-30 384.1850 NaN
2000-05-31 383.3600 267.2
... ... ...
2020-03-31 396.3755 NaN
2020-04-30 NaN 350.12
2020-05-31 395.0485 NaN
2020-06-30 394.9400 396.321
2020-07-31 395.3070 NaN
2条答案
按热度按时间qvsjd97n1#
答案出奇的简单:
这是由于
mean
默认忽略NaN(skipna=True
),因此如果只有一个值,则平均值为值本身,如果只有NaNs,则输出为NaN输出量:
ie3xauqp2#
您可以使用此选项: