我有以下DF:
target
如果“事件”值匹配,我想复制与特定“事件”值的行相对应的“日期”值(从非空白位置到空白位置)。因此,如果将“ Dance”与值“ 11/8/2011”相关联,则我希望所有“ Dance”在日期下都包含这些值,而不是空白。
我希望最终的DF看起来像这样:
df = pd.DataFrame({'Date' : ['11/8/2011', '11/9/2011', '11/10/2011',
'11/11/2011', '11/12/2011', '','','','',''],
'Event' : ['Dance', 'Painting', 'Bowling', 'Rugby', 'Running','Dance', 'Painting', 'Bowling', 'Rugby', 'Running']})
df
我尝试过:
df = pd.DataFrame({'Date' : ['11/8/2011', '11/9/2011', '11/10/2011',
'11/11/2011', '11/12/2011', '11/8/2011', '11/9/2011', '11/10/2011','11/11/2011', '11/12/2011'],
'Event' : ['Dance', 'Painting', 'Bowling', 'Rugby', 'Running','Dance', 'Painting', 'Bowling', 'Rugby', 'Running']})
但是得到以下消息,而不是新的数据框:
DF_New = df.groupby(['Event'])
答案 0 :(得分:2)
您可以执行groupby().ffill()
:
df['Date'] = (df.Date.where(df.Date.ne(''))
.groupby(df.Event)
.ffill()
)
输出:
Date Event
0 11/8/2011 Dance
1 11/9/2011 Painting
2 11/10/2011 Bowling
3 11/11/2011 Rugby
4 11/12/2011 Running
5 11/8/2011 Dance
6 11/9/2011 Painting
7 11/10/2011 Bowling
8 11/11/2011 Rugby
9 11/12/2011 Running