gpt4 book ai didi

python - Pandas 用数组更新列

转载 作者:太空狗 更新时间:2023-10-30 00:34:24 26 4
gpt4 key购买 nike

所以,我正在学习 Pandas ,但遇到了这个问题。

假设我有一个像这样的 Dataframe:

A B C
1 x NaN
2 y NaN
3 x NaN
4 x NaN
5 y NaN

我正在尝试创建这个:

A B C
1 x [1,3,4]
2 y [2,5]
3 x [1,3,4]
4 x [1,3,4]
5 y [2,5]

基于 B 的相似性。

我这样做了:

teste = df.groupby(['B'])
for name,group in teste:
df.loc[df['B'] == name[0],'C'] = group['A'].tolist()

我明白了。就像 C 列基于 A 列一样。

A B C
1 x 1
2 y 2
3 x 3
4 x 4
5 y 5

任何人都可以向我解释为什么会发生这种情况以及按照我想要的方式执行此操作的解决方案吗?谢谢:)

最佳答案

您可以先根据 B 列进行聚合,然后在 B 上与原始 df 连接:

df
# A B
#0 1 x
#1 2 y
#2 3 x
#3 4 x
#4 5 y

df.groupby('B').A.apply(list).rename('C').reset_index().merge(df)

# B C A
#0 x [1, 3, 4] 1
#1 x [1, 3, 4] 3
#2 x [1, 3, 4] 4
#3 y [2, 5] 2
#4 y [2, 5] 5

关于python - Pandas 用数组更新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45195662/

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