gpt4 book ai didi

python - 根据另一行的值更新数据框中的行值?

转载 作者:行者123 更新时间:2023-12-04 04:09:48 24 4
gpt4 key购买 nike

我有一个包含两列的数据框:ab

df

         a         b
0 john 123
1 john
2 mark
3 mark 456
4 marcus 789

我想根据 a 列更新 b 列的值。

         a         b
0 john 123
1 john 123
2 mark 456
3 mark 456
4 marcus 789

如果 johnb 中有值 123。剩余的 john 也必须具有相同的值。

最佳答案

假设您的数据框是:

df = pd.DataFrame({'a': ['john', 'john', 'mark', 'mark', 'marcus'], 'b': [123, '', '', 456, 789]})

您可以 df.groupbya 上的数据帧,然后在返回第一个非空值的分组数据帧的列 b 上应用 transform在分组列 b 中。

使用:

df['b'] = (
df.groupby('a')['b']
.transform(lambda s: s[s.ne('')].iloc[0] if s.ne('').any() else s)
)

结果:

# print(df)

a b
0 john 123
1 john 123
2 mark 456
3 mark 456
4 marcus 789

关于python - 根据另一行的值更新数据框中的行值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61931704/

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