pandas [python 3]中对应值的计数频率
Counting frequencies of the corresponding values in pandas [python 3]
我的数据集具有以下值:
var1 var2
1234 abc
2345 bcs
5678 csd
1234 abc
1234 bcs
5678 csd
1234 bcs
1234 xyz
1234 abc
9101 zzz
我需要对 var1 列中的每个唯一值进行计数并显示 var2 中相应值的前 3 个频率计数,并获得输出,例如:
var1 var2 count
1234 abc 3
1234 bcs 2
1234 xyz 1
5678 csd 2
9101 zzz 1
最有效的方法是什么?
df_a.groupby(['var1','var2'])['var2'].agg({'count':'count'}).reset_index()
这有效:
df.groupby(['var1','var2']).count()
您需要包括 nlargest
df.groupby('var1').var2.apply(lambda x: x.value_counts().nlargest(3)) \
.reset_index(name='count').rename(columns={'level_1': 'var2'})
var1 var2 count
0 1234 abc 3
1 1234 bcs 2
2 1234 xyz 1
3 2345 bcs 1
4 5678 csd 2
5 9101 zzz 1
我的数据集具有以下值:
var1 var2
1234 abc
2345 bcs
5678 csd
1234 abc
1234 bcs
5678 csd
1234 bcs
1234 xyz
1234 abc
9101 zzz
我需要对 var1 列中的每个唯一值进行计数并显示 var2 中相应值的前 3 个频率计数,并获得输出,例如:
var1 var2 count
1234 abc 3
1234 bcs 2
1234 xyz 1
5678 csd 2
9101 zzz 1
最有效的方法是什么?
df_a.groupby(['var1','var2'])['var2'].agg({'count':'count'}).reset_index()
这有效:
df.groupby(['var1','var2']).count()
您需要包括 nlargest
df.groupby('var1').var2.apply(lambda x: x.value_counts().nlargest(3)) \
.reset_index(name='count').rename(columns={'level_1': 'var2'})
var1 var2 count
0 1234 abc 3
1 1234 bcs 2
2 1234 xyz 1
3 2345 bcs 1
4 5678 csd 2
5 9101 zzz 1