Let's say I have the following DataFrame:
df = pd.DataFrame({'player': ['LBJ', 'LBJ', 'LBJ', 'Kyrie', 'Kyrie', 'LBJ', 'LBJ'],
'points': [25, 32, 26, 21, 29, 21, 35]})
How can I do the opposite of ffill , so I can get the following DataFrame:
df = pd.DataFrame({'player': ['LBJ', np.nan, np.nan, 'Kyrie', np.nan, 'LBJ', np.nan],
'points': [25, 32, 26, 21, 29, 21, 35]})
That is, I want to populate directly repeating values ββwith NaN.
Here is what I have, but I hope that there will be a built-in pandas method or a better approach:
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