重复熊猫数据框的特定行

时间:2018-08-25 04:54:26

标签: python pandas dataframe

我想重复特定行的熊猫数据帧给定次数。

例如,这是我的数据框

df= pd.DataFrame({
'id' : ['1','1', '2', '2','2','3'],
'val' : ['2015_11','2016_2','2011_9','2011_11','2012_2','2018_2'],
'data':['a','a','b','b','b','c']
})

print(df)

input datafarme

此处,“ Val”列包含字符串格式的日期。它具有特定的模式“ Year_month”。对于相同的“ id”,我希望重复行的次数等于给定“ val”列值之间的差。除val列外的所有其他列应具有上一行的重复值。

输出应为:

The output should be

1 个答案:

答案 0 :(得分:3)

使用resample

df.val = pd.to_datetime(df.val, format='%Y_%m')
out = df.set_index('val').groupby('id').data.resample('1m').ffill().reset_index()
out.assign(val=out.val.dt.strftime('%Y_%m'))

   id      val data
0   1  2015_11    a
1   1  2015_12    a
2   1  2016_01    a
3   1  2016_02    a
4   2  2011_09    b
5   2  2011_10    b
6   2  2011_11    b
7   2  2011_12    b
8   2  2012_01    b
9   2  2012_02    b
10  3  2018_02    c