熊猫数多列

我有一个像这样的数据框

Measure1 Measure2 Measure3 ...
0        1         3
1        3         2
3        0        

我想计算要产生的列中值的出现次数:

Measure Count Percentage
0       2     0.25
1       2     0.25
2       1     0.125
3       3     0.373

outcome_measure_count = cdss_data.groupby(key_columns=['Measure1'],operations={'count': agg.COUNT()}).sort('count', ascending=True)

我只得到第一列(实际上是使用graphlab程序包,但我更喜欢熊猫)

有人可以帮我吗?

埃德·楚姆

您可以使用ravel和展平df来生成计数value_counts,由此可以构造最终的df:

In [230]:
import io
import pandas as pd
​
t="""Measure1 Measure2 Measure3
0        1         3
1        3         2
3        0        0"""
​
df = pd.read_csv(io.StringIO(t), sep='\s+')
df

Out[230]:
   Measure1  Measure2  Measure3
0         0         1         3
1         1         3         2
2         3         0         0

In [240]:    
count = pd.Series(df.squeeze().values.ravel()).value_counts()
pd.DataFrame({'Measure': count.index, 'Count':count.values, 'Percentage':(count/count.sum()).values})

Out[240]:
   Count  Measure  Percentage
0      3        3    0.333333
1      3        0    0.333333
2      2        1    0.222222
3      1        2    0.111111

我插入了一个0只是为了使df形状正确,但是您应该明白了

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章