我在这样的大熊猫中有一个数据框:
STATUS FEATURES
A [x,y,z]
A [t, y]
B [x,p,t]
B [x,p]
我想根据状态来计算要素列表中元素的频率。 所需的输出将是:
STATUS FEATURES FREQUENCY
A x 1
A y 2
A z 1
A t 1
B x 2
B t 1
B p 2
答案 0 :(得分:0)
让我们explode
,groupby
size
s=df.explode(['FEATURES']).groupby(['STATUS','FEATURES']).size().reset_index()
答案 1 :(得分:0)
使用DataFrame.explode
和SeriesGroupBy.value_counts
:
new_df = (df.explode('FEATURES')
.groupby('STATUS')['FEATURES']
.value_counts()
.reset_index(name='FRECUENCY'))
print(new_df)
输出
STATUS FEATURES FRECUENCY
0 A y 2
1 A t 1
2 A x 1
3 A z 1
4 B p 2
5 B x 2
6 B t 1