gpt4 book ai didi

python - pandas - 具有多个值的 groupby 列

转载 作者:太空宇宙 更新时间:2023-11-04 07:55:45 26 4
gpt4 key购买 nike

我想显示使用过某个值的用户。

import pandas as pd
user = ['alice', 'bob', 'tim', 'alice']
val = [['a','b','c'],['a'],['c','d'],['a','d']]
df = pd.DataFrame({'user': user, 'val': val})

user val
'alice' [a, b, c]
'bob' [a]
'tim' [c, d]
'alice' [a, d]

期望的输出:

val     users
a [alice,bob]
b [alice]
c [alice,tim]
d [alice,tim]

有什么想法吗?

最佳答案

第一步
reshape 您的数据 -

from itertools import chain

df = pd.DataFrame({
'val' : list(chain.from_iterable(df.val.tolist())),
'user' : df.user.repeat(df.val.str.len())
})

第 2 步
使用groupby + apply + unique:

df.groupby('val').user.apply(lambda x: x.unique().tolist())

val
a [alice, bob]
b [alice]
c [alice, tim]
d [tim, alice]
Name: user, dtype: object

关于python - pandas - 具有多个值的 groupby 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49230178/

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