ffill和bfill同时在大Pandas体内使用替代品

2024-04-20 00:10:52 发布

您现在位置:Python中文网/ 问答频道 /正文

问题

有没有办法在熊猫身上同时使用ffill和{}?在

请参见以下示例

l = 12
rng = pd.date_range('1/1/2011', periods=l, freq='8h')
df = pd.DataFrame({ 
    'animals':[0,0,'cat',0,'dog',0,0,0,'mouse',0,'ant',0],
    },index=rng)

df
Out[93]:
                  animals
2011-01-01 00:00:00 0
2011-01-01 08:00:00 0
2011-01-01 16:00:00 cat
2011-01-02 00:00:00 0
2011-01-02 08:00:00 dog
2011-01-02 16:00:00 0
2011-01-03 00:00:00 0
2011-01-03 08:00:00 0
2011-01-03 16:00:00 mouse
2011-01-04 00:00:00 0
2011-01-04 08:00:00 ant
2011-01-04 16:00:00 0

我目前使用replace的两次迭代来完成这项工作。在

^{pr2}$

它工作正常,但我认为有一种方法可以ffill和{},因此值得检查。在


Tags: 示例dfdaterangecatpdfreqanimals
1条回答
网友
1楼 · 发布于 2024-04-20 00:10:52

你可以这样做:

In [278]: df['animals'] = df['animals'].replace(0, np.nan) \
                                       .groupby(pd.TimeGrouper('D')) \
                                       .bfill().ffill()

In [279]: df
Out[279]:
                    animals
2011-01-01 00:00:00     cat
2011-01-01 08:00:00     cat
2011-01-01 16:00:00     cat
2011-01-02 00:00:00     dog
2011-01-02 08:00:00     dog
2011-01-02 16:00:00     dog
2011-01-03 00:00:00   mouse
2011-01-03 08:00:00   mouse
2011-01-03 16:00:00   mouse
2011-01-04 00:00:00     ant
2011-01-04 08:00:00     ant
2011-01-04 16:00:00     ant

相关问题 更多 >