gpt4 book ai didi

pandas - 如何确定 Pandas 中非 NaN 系列的结尾

转载 作者:行者123 更新时间:2023-12-04 18:46:46 25 4
gpt4 key购买 nike

对于数据框

df = pd.DataFrame([[np.nan, 3.0, 7.0], [0.0, 5.0, 8.0], [0.0, 0.0, 0.0], [1.0, 3.0, np.nan], [1.0, np.nan, np.nan]],
columns=[1, 2, 3], index=pd.date_range('20180101', periods=5))

这是
              1    2    3
2018-01-01 NaN 3.0 7.0
2018-01-02 0.0 5.0 8.0
2018-01-03 0.0 0.0 0.0
2018-01-04 1.0 3.0 NaN
2018-01-05 1.0 NaN NaN

我想知道非 NaN 系列(列)何时结束。结果数据框应该看起来
                1      2      3
2018-01-01 False False False
2018-01-02 False False False
2018-01-03 False False False
2018-01-04 False False True
2018-01-05 False True True

我试图与
df.apply(lambda x: x.last_valid_index())

这导致
1   2018-01-05
2 2018-01-04
3 2018-01-03

到现在为止还挺好。但如何继续?欢迎所有解决方案(以及那些不包含 last_valid_index() 的解决方案)!

最佳答案

使用测试缺失值回填缺失值:

df1 = df.bfill().isna()
print (df1)
1 2 3
2018-01-01 False False False
2018-01-02 False False False
2018-01-03 False False False
2018-01-04 False False True
2018-01-05 False True True

详情 :
print (df.bfill())
1 2 3
2018-01-01 0.0 3.0 7.0
2018-01-02 0.0 5.0 8.0
2018-01-03 0.0 0.0 0.0
2018-01-04 1.0 3.0 NaN
2018-01-05 1.0 NaN NaN

关于pandas - 如何确定 Pandas 中非 NaN 系列的结尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56293267/

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