熊猫按count_values汇总为行

时间:2019-08-26 15:18:05

标签: python pandas

我正在尝试按数据帧中不同列中的类别汇总一些数据。这是数据。

         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

2 个答案:

答案 0 :(得分:5)

尝试使用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  

答案 1 :(得分:4)

这是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