gpt4 book ai didi

python - 计算 Pandas 中选定(多个)列中出现的总次数

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

我想总结多列中出现的分类值,因此有多次特定的分类值出现在多列中。

这是我的数据框:

>>> import pandas as pd
>>> df = pd.DataFrame({'user_id': [1,2,3,4,5,6],
... 'position_1':['abc', 'bbc', 'ccd', 'kpd', 'mne', 'jbp'],
... 'position_2':['jkp', 'klp', 'abc', 'jbp', 'ccd', 'ppt'],
... 'position_3':['abc', 'bbc', 'ytz', 'mne', 'ppt', 'jbp']})
>>> df
user_id position_1 position_2 position_3
0 1 abc jkp abc
1 2 bbc klp bbc
2 3 ccd abc ytz
3 4 kpd jbp mne
4 5 mne ccd ppt
5 6 jbp ppt jbp

我想要的输出应该是这样的:

value           number of occurrences in selected columns
abc 4
jbp 3
bbc 2
ccd 2
and so on.

我尝试使用 value_counts,但结果令人困惑:

df.value_counts(['position_1', 'position_2', 'position_3'])

position_1 position_2 position_3
mne ccd ppt 1
kpd jbp mne 1
jbp ppt jbp 1
ccd abc ytz 1
bbc klp bbc 1
abc jkp abc 1
dtype: int64

最佳答案

使用 DataFrame.meltGroupBy.size :

cols = ['position_1', 'position_2', 'position_3'] 
df = df[cols].melt().groupby('value').size().reset_index(name='count')
print (df)
value count
0 abc 3
1 bbc 2
2 ccd 2
3 jbp 3
4 jkp 1
5 klp 1
6 kpd 1
7 mne 2
8 ppt 2
9 ytz 1

关于python - 计算 Pandas 中选定(多个)列中出现的总次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65628578/

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