gpt4 book ai didi

python - Pandas - FillNa 与另一个具有相似列的非空行

转载 作者:太空宇宙 更新时间:2023-11-04 05:22:50 25 4
gpt4 key购买 nike

我想用另一列的值填充一列中的缺失值。

我读到循环遍历每一行是非常糟糕的做法,一次完成所有事情会更好,但我找不到如何使用 fillna 方法完成它。

之前的数据

Day  Cat1  Cat2
1 cat ant
2 dog elephant
3 cat giraf
4 NaN ant

之后的数据

Day  Cat1  Cat2
1 cat ant
2 dog elephant
3 cat giraf
4 cat ant

最佳答案

您可以使用 fillna并传递没有 NaN 行的 df,将索引设置为 Cat2 然后调用 map这将执行查找:

In [108]:
df['Cat1'] = df['Cat1'].fillna(df['Cat2'].map(df.dropna().set_index('Cat2')['Cat1']))
df

Out[108]:
Day Cat1 Cat2
0 1 cat ant
1 2 dog elephant
2 3 cat giraf
3 4 cat ant

所以在这里我删除了 NaN 行,并将索引设置为 Cat2,通过调用 map 它将查找 Cat1Cat2`匹配

这是 map 的结果:

In [112]:
df['Cat2'].map(df.dropna().set_index('Cat2')['Cat1'])

Out[112]:
0 cat
1 dog
2 cat
3 cat
Name: Cat2, dtype: object

关于python - Pandas - FillNa 与另一个具有相似列的非空行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39773425/

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