如果b
是nan
,我想用a
中的值填充 Dataframe 的b
列,并且我想在方法链中完成此操作,但我不知道如何完成。
以下作品
import numpy as np
import pandas as pd
df = pd.DataFrame(
{"a": [1, 2, 3, 4], "b": [10, np.nan, np.nan, 40], "c": ["a", "b", "c", "d"]}
)
df["b"] = df[["a", "b"]].ffill(axis=1)["b"]
print(df.to_markdown())
| | a | b | c |
|---:|----:|----:|:----|
| 0 | 1 | 10 | a |
| 1 | 2 | 2 | b |
| 2 | 3 | 3 | c |
| 3 | 4 | 40 | d |
但不是方法链接的。非常感谢您的帮助!
2条答案
按热度按时间6yjfywim1#
zdwk9cvp2#
我找到的一个解决方案是使用pyjanitor库:
这里,
case_when(...)
可以被集成到一个操作链中,并且我们仍然将整个 Dataframe 保留在该链中。我想知道如果没有
pyjanitor
,这怎么可能完成。