pandas 数据框中列表中元素的条件频率
Conditional frequency of elements within lists in pandas data frame
我在 pandas 中有一个这样的数据框:
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
让我们做 explode
, groupby
size
s=df.explode(['FEATURES']).groupby(['STATUS','FEATURES']).size().reset_index()
使用DataFrame.explode
and 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
我在 pandas 中有一个这样的数据框:
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
让我们做 explode
, groupby
size
s=df.explode(['FEATURES']).groupby(['STATUS','FEATURES']).size().reset_index()
使用DataFrame.explode
and 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