gpt4 book ai didi

python - 如何使用 pandas 获取数据框的列(具有字符串数组)中每个元素的频率?

转载 作者:行者123 更新时间:2023-11-30 08:52:49 26 4
gpt4 key购买 nike

我有一个 python 中的 panda 数据框,如下所示:

df['column'] = [abc, mno]
[mno, pqr]
[abc, mno]
[mno, pqr]

我想获取下面每个项目的数量:

abc = 2, 
mno= 4 ,
pqr = 2

我可以对每一行进行迭代来计数,但这不是我正在寻找的解决方案。如果有任何方法可以使用 iloc 或与之相关的任何内容,请向我建议。

我已经研究了解决类似问题的各种解决方案,但没有一个能满足我的场景。

最佳答案

这是我如何使用 .explode().value_counts() 解决它,您还可以将其分配为一列或按照您的意愿使用输出:一行:

print(df.explode('column')['column'].value_counts())

完整示例:

import pandas as pd
data_1 = {'index':[0,1,2,3],'column':[['abc','mno'],['mno','pqr'],['abc','mno'],['mno','pqr']]}
df = pd.DataFrame(data_1)
df = df.set_index('index')
print(df)
column
index
0 [abc, mno]
1 [mno, pqr]
2 [abc, mno]
3 [mno, pqr]

这里我们执行 .explode() 从列表中创建单个值,并执行 value_counts() 来计算唯一值的重复次数:

df_new = df.explode('column')
print(df_new['column'].value_counts())

输出:

mno    4
abc 2
pqr 2

关于python - 如何使用 pandas 获取数据框的列(具有字符串数组)中每个元素的频率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59954501/

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