gpt4 book ai didi

python - 进位/复制 NaN 值到另一列 DF Pandas

转载 作者:行者123 更新时间:2023-12-01 09:20:05 26 4
gpt4 key购买 nike

我有一个 df ,如下所示:

|  id | qty  | item |
+-----+------+------+
| 001 | 700 | CB04 |
| 002 | 500 | NaN |
| 003 | 1500 | AB01 |

我想将 NaN 值从 df['item'] 复制到 df['qty'],使其看起来像这样:

|  id | qty  |   item   |
+-----+------+----------+
| 001 | 700 | CB04 box |
| 002 | NaN | NaN |
| 003 | 1500 | AB01 box |

我做了以下事情

df['qty'] = df.loc[df['item'].isnull(),'item']

但是我的df竟然是这样的。

|  id | qty |   item   |
+-----+-----+----------+
| 001 | NaN | CB04 box |
| 002 | NaN | NaN |
| 003 | NaN | AB01 box |

最佳答案

您的方法不起作用,因为您选择列 item(当它为空时),并设置 qty 等于该结果,该结果始终为 NaN,因此它用 NaN

填充 qty>

使用 loc 和 bool 索引并设置所需的列。你很接近,只是分配不太正确。

df.loc[df.item.isnull(), 'qty'] = np.nan

id qty item
0 1 700.0 CB04
1 2 NaN NaN
2 3 1500.0 AB01

还使用 np.where (当我在 300k 行数据帧上测试时速度稍快)

df.qty = np.where(df.item.isnull(), np.nan, df.qty)

关于python - 进位/复制 NaN 值到另一列 DF Pandas,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50863785/

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