我正在尝试按数据帧中不同列中的类别汇总一些数据。这是数据。
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()
我可以分别为每个功能获取这些值,但是我想将其添加到具有所有功能的新数据框中。我该怎么办?
结果表如下:
答案 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