如何使用 Python 遍历多个列以获得非 NaN 的值
How to iterate through many columns for a value that is not NaN using Python
我有一个空列依赖于同一 df 中的其他 4 列。每行仅包含相同的字符串或 NaN,因此我想获取列中弹出的第一个字符串。
我想遍历 4 列,如果其中一列包含一个不是 NaN 的值,我想将其打印为空,如果它们都是 NaN,那么我希望空为 NaN。
空
1
2
3
4
南
南
苹果
南
鸭子
南
鸭子
南
南
南
南
南
这是我想要的结果。
空
1
2
3
4
苹果
南
南
苹果
南
鸭子
鸭子
南
鸭子
南
南
南
南
南
南
尝试 .bfill(axis=1)
:
df["Empty"] = df.loc[:, "1":].bfill(axis=1)["1"]
print(df)
打印:
Empty 1 2 3 4
0 apple NaN NaN apple NaN
1 duck duck NaN duck NaN
2 NaN NaN NaN NaN NaN
我有一个空列依赖于同一 df 中的其他 4 列。每行仅包含相同的字符串或 NaN,因此我想获取列中弹出的第一个字符串。
我想遍历 4 列,如果其中一列包含一个不是 NaN 的值,我想将其打印为空,如果它们都是 NaN,那么我希望空为 NaN。
空 | 1 | 2 | 3 | 4 |
---|---|---|---|---|
南 | 南 | 苹果 | 南 | |
鸭子 | 南 | 鸭子 | 南 | |
南 | 南 | 南 | 南 |
这是我想要的结果。
空 | 1 | 2 | 3 | 4 |
---|---|---|---|---|
苹果 | 南 | 南 | 苹果 | 南 |
鸭子 | 鸭子 | 南 | 鸭子 | 南 |
南 | 南 | 南 | 南 | 南 |
尝试 .bfill(axis=1)
:
df["Empty"] = df.loc[:, "1":].bfill(axis=1)["1"]
print(df)
打印:
Empty 1 2 3 4
0 apple NaN NaN apple NaN
1 duck duck NaN duck NaN
2 NaN NaN NaN NaN NaN