假设我有以下数据帧:
df = pd.DataFrame({'player': ['LBJ', 'LBJ', 'LBJ', 'Kyrie', 'Kyrie', 'LBJ', 'LBJ'],
'points': [25, 32, 26, 21, 29, 21, 35]})
如何执行与ffill相反的操作,以便获得以下数据帧:
^{pr2}$也就是说,我想用NaN直接填充重复的值。
以下是我目前所掌握的方法,但我希望有一种内置的pandas方法或更好的方法:
for i, (index, row) in enumerate(df.iterrows()):
if i == 0:
continue
go_back = 1
while True:
past_player = df.ix[i-go_back, 'player']
if pd.isnull(past_player):
go_back += 1
continue
if row['player'] == past_player:
df.set_value(index, 'player', value=np.nan)
break
可能不是最有效的解决方案,但使用}:
itertools.groupby
和{更具体地说,这说明了它是如何工作的:
^{pr2}$给予:
然后被“锁”在一起。在
相关问题 更多 >
编程相关推荐