gpt4 book ai didi

python - pandas:shift(1) 组中的所有值,除了第一个值(每组中),该值应为 0

转载 作者:行者123 更新时间:2023-12-01 01:39:40 24 4
gpt4 key购买 nike

给定以下 df:

import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randint(1,3, (10,2)), columns=['a','b']).sort_values(['a'])

现在,我想用该组中的前一个值替换每个组中的所有值,但每个组中的第一个值除外,我想用 0 替换它。

这不行:

df.groupby("a", sort = False).transform(lambda g: g.shift(1).fillna(0))

因为我只想将第一个 np.nan(每个组中)替换为0

最佳答案

这是您需要的吗?

s=df.groupby("a", sort = False).b.shift()

s
Out[913]:
0 NaN
1 1.0
2 2.0
3 1.0
4 1.0
5 NaN
6 2.0
7 2.0
8 1.0
9 2.0
Name: b, dtype: float64
idx=s.groupby(df.a).head(1).index
s.loc[idx]=0

关于python - pandas:shift(1) 组中的所有值,除了第一个值(每组中),该值应为 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52020735/

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