我有一个数据框
df = pd.DataFrame({"A":[1,2,np.nan],"B":[np.nan,10,np.nan], "C":[5,10,7]})
A B C
0 1.0 NaN 5
1 2.0 10.0 10
2 NaN NaN 7
我想添加新列“D”。预期输出为
A B C D
0 1.0 NaN 5 1.0
1 2.0 10.0 10 2.0
2 NaN NaN 7 7.0
先谢了!
6条答案
按热度按时间ccrfmcuu1#
另一种方法是使用
pd.Series
的combine_first
方法。我们有
我们可以使用
reduce
来抽象此模式,以便处理任意数量的列。让我们把所有这些放在一个函数中。
hi3rlvi22#
我认为您需要
bfill
,并通过iloc
选择第一列:同:
oo7oh9g93#
备选案文1
一月一日
备选案文2
一个月一个月
初始时间测试
ohfgkhjo4#
在Pandas中已经有一种方法可以实现这一点:
或者如果你想按顺序查找值,就把它们堆叠起来:
这将输出以下内容:
wswtfjt75#
推广
fillna
解决方案的简单函数:x6yk4ghg6#
另一种方法是用A、B、C的顺序显式地填充D列。