【发布时间】:2022-11-23 01:40:42
【问题描述】:
我正在获取一个 df,它是所有 dup 值对,然后从第二行获取第二列值并将其添加到名为“new_amt”的新列的第一行,然后为第二行和新的第三列插入 NaN。在我删除所有包含 NaN 的行之后。
所以数据框看起来像这样:
| ref_num | Amt | |
|---|---|---|
| row 1 | 1 | 10 |
| row 2 | 1 | 20 |
| row 3 | 2 | 5 |
| row 4 | 2 | 15 |
| row 5 | 3 | 12 |
| row 6 | 3 | 7 |
之后它应该是这样的:
| ref_num | Amt | new_Amt | |
|---|---|---|---|
| row 1 | 1 | 10 | 20 |
| row 2 | 1 | 20 | NaN |
| row 3 | 2 | 5 | 15 |
| row 4 | 2 | 15 | NaN |
| row 5 | 3 | 12 | 7 |
| row 6 | 3 | 7 | NaN |
我认为 lambda 函数可以在我让 else 语句为所有第二个 dup 行返回 NaN 的地方工作,但我可以弄清楚语法。
df['new_Amt'] = df.apply(lambda x : x['Amt'] 如果 x['ref_num'] == x['ref_num'] 否则 x['new_Amt'] 是 NaN)
【问题讨论】: