按行计数值汇总

2024-10-03 23:17:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在数据框中的不同列中按类别总结一些数据。这是数据。你知道吗

         feature1  feature2  featurem
brand1   good      none      good
brand2   bad       good      bad
brand..  none      none      good
brandn   good      none      none

我想有一个表格,告诉我有多少从[好,坏,没有]我每个功能。所以这会告诉我有多少品牌在功能1中有好的,功能1中有坏的,功能1中没有,等等。你知道吗

例如,我知道

df["feature1"].value_counts() 

我可以分别为每个特性获取这样的值,但是我想将它添加到一个新的数据帧中,在那里我拥有所有的特性。我该怎么做?你知道吗

生成的表如下所示:

enter image description here


Tags: 数据功能none特性类别表格badgood
2条回答

这是melt+crosstab

m = df.melt()
pd.crosstab(m['value'], m['variable'])

variable  feature 1  feature 2  feature m
value
bad               1          0          1
good              2          1          2
none              1          3          1

尝试使用apply并传递pd.Series.value_counts

df = pd.DataFrame({'feature '+str(i):np.random.choice(['Good','Bad','none'], 20) for i in range(1,10)})

df.apply(pd.Series.value_counts)

输出:

      feature 1  feature 2  feature 3  feature 4  feature 5  feature 6  \
Bad           6         12          6         10          6          4   
Good          6          2          8          5          6          9   
none          8          6          6          5          8          7   

      feature 7  feature 8  feature 9  
Bad           3          6          7  
Good          3          6          4  
none         14          8          9  

相关问题 更多 >