Pandas:使用已在列中的特定有序值填写缺失的索引。

时间:2017-04-14 12:18:57

标签: python pandas dataframe

我提取了一个具有特定值的单列数据框。现在这就是数据框的样子:

           Commodity  
0              Cocoa
4             Coffee
6              Maize
7               Rice
10             Sugar
12             Wheat

现在我想分别在列中填充每个没有值的索引以及它上面的值,所以看起来应该是这样的:

            Commodity  
0               Cocoa
1               Cocoa
2               Cocoa
3               Cocoa
4              Coffee
5              Coffee
6               Maize
7                Rice
8                Rice
9                Rice
10              Sugar
11              Sugar
12              Wheat

我似乎没有从pandas文档中获取任何内容使用Text Data。谢谢你的帮助!

2 个答案:

答案 0 :(得分:2)

我使用pd.RangeIndex创建了一个新索引。它的工作方式与range类似,因此我需要将其传递给当前索引中的最大数字。

df.reindex(pd.RangeIndex(df.index.max() + 1)).ffill()

   Commodity
0      Cocoa
1      Cocoa
2      Cocoa
3      Cocoa
4     Coffee
5     Coffee
6      Maize
7       Rice
8       Rice
9       Rice
10     Sugar
11     Sugar
12     Wheat

答案 1 :(得分:1)

首先展开索引以包含所有数字

s = pd.Series(['Cocoa', 'Coffee', 'Maize', 'Rice', 'Sugar', 'Wheat',], index=[0,4,6,7,10, 12], name='Commodity')
s = s.reindex(range(s.index.max() + 1))

然后执行backfill

s.bfill()