gpt4 book ai didi

python - pandas 数据框中两列列表中的元素计数

转载 作者:行者123 更新时间:2023-12-01 00:35:47 25 4
gpt4 key购买 nike

当列表位于 pandas 数据框列中时,我需要获取列表中每个元素的频率。

它就像data.groupby(["element in a","element in b"]).size(),但列'a'和列'b'是列表。

我需要 'a' 和 b'b' 中元素的每个组合的大小

in data:
a b
0 [17, 21, 22] [zhinan, shejiyuanze, fankui]
1 [17, 21, 23] [zhinan, shejiyuanze]
2 [17, 21] [zhinan, shejiyuanze, fankui]
3 [17, 21, 22] [zhinan, shejiyuanze, fankui]
4 [17, 21] [zhinan, shejiyuanze, yizhi]

期望的输出:

              17 21 22 23 
zhinan 5 5 2 1
shejiyuanze . . . .
fankui . . . .
yizhi . . . .

例如,当a=17且b=zhinan时,数量为5。当a=17且b=fankui时,数量为3。当a=23且b=fankui或b=yizhi时,数量为0 .

我想知道是否有一种有效/直接的方法来做到这一点。

谢谢

最佳答案

使用explode来分解列表。请记住在第二次爆炸之前reset_index

然后使用group_by来统计出现的次数。

最后使用unstack将Series转换为Dataframe

df.explode('a').reset_index(drop=True).explode('b').groupby(['b', 'a']).a.count().unstack()

关于python - pandas 数据框中两列列表中的元素计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57782607/

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