首页 > 解决方案 > 如何用列中不存在的值的行填充pandas df,然后向后填充na?

问题描述

我有以下熊猫数据框:

import pandas as pd
foo = pd.DataFrame({'week': [1,2,4,5,7], 'items':[1,2,3,4,5]}

我想从 to 填充foo“缺失”周的17,然后对于这些行,该items列应该具有前一个非 na 值

输出数据框应如下所示:

foo = pd.DataFrame({'week': [1,2,3,4,5,6,7], 'items':[1,2,2,3,4,4,5]}

我怎么能那样做?

标签: pythonpandas

解决方案


可以用set_index()method、reindex()method、ffill()method 、method来试试reset_index()

resultdf=foo.set_index('week').reindex(range(1,8)).ffill().reset_index()

现在,如果您打印resultdf,您将获得:

     week      items
0     1        1.0
1     2        2.0
2     3        2.0
3     4        3.0
4     5        4.0
5     6        4.0
6     7        5.0

现在,如果您想要项目值,int那么您可以使用astype()方法:

resultdf['items']=resultdf['items'].astype(int)

推荐阅读