将NaN值携带/复制到Pandas的另一列

2024-10-16 17:28:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个像这样的测向仪:

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

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

^{pr2}$

我做了以下事情

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

但我的df结果是这样的。在

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

Tags: boxiddfnanitem事情locqty
1条回答
网友
1楼 · 发布于 2024-10-16 17:28:54

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

loc与布尔索引一起使用,并设置所需的列。你很接近,只是分配得不太正确。在

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行数据帧上测试时,速度稍快)

^{pr2}$

相关问题 更多 >