gpt4 book ai didi

python - 执行与 pandas ffill 相反的操作

转载 作者:太空狗 更新时间:2023-10-30 01:11:55 24 4
gpt4 key购买 nike

假设我有以下 DataFrame:

df = pd.DataFrame({'player': ['LBJ', 'LBJ', 'LBJ', 'Kyrie', 'Kyrie', 'LBJ', 'LBJ'],
'points': [25, 32, 26, 21, 29, 21, 35]})

如何执行与ffill相反的操作?所以我可以获得以下 DataFrame:

df = pd.DataFrame({'player': ['LBJ', np.nan, np.nan, 'Kyrie', np.nan, 'LBJ', np.nan],
'points': [25, 32, 26, 21, 29, 21, 35]})

也就是我想直接用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

最佳答案

ffinv = lambda s: s.mask(s == s.shift())
df.assign(player=ffinv(df.player))

player points
0 LBJ 25
1 NaN 32
2 NaN 26
3 Kyrie 21
4 NaN 29
5 LBJ 21
6 NaN 35

关于python - 执行与 pandas ffill 相反的操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46479437/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com