我有以下输入 Dataframe :
0 1 2 3 4
date
2007-02-15 NaN -0.88 0.80 NaN 0.5
2007-02-16 0.5 -0.84 NaN 0.29 NaN
2007-02-19 NaN -0.84 0.79 0.29 NaN
2007-02-20 0.5 0.50 0.67 0.20 0.5
我需要得到一个输出 Dataframe ,其中每一行都有第一个和第n个(例如第三个)非空值。
1st 3rd
date
2007-02-15 -0.88 0.50
2007-02-16 0.50 0.29
2007-02-19 -0.84 0.29
2007-02-20 0.50 0.67
对于第一个值,我知道我可以执行以下操作:
df2['1st'] = df.fillna(method='bfill', axis=1).iloc[:, 0]
但是我该怎么做才能找到第三个呢?谢谢
2条答案
按热度按时间uhry853o1#
第一次和第三次
输出:
第一个和最后一个
您可以按照初始逻辑再添加一个
ffill
,并对第一列和最后一列进行切片:输出:
stack
和groupby.agg
的另一个选项:输出:
k4emjkb12#
您可以执行
sorted
,然后使用columns number选择值