Python 熊猫中的数据帧转换

Python 熊猫中的数据帧转换,python,pandas,Python,Pandas,我试图用python获取数据帧中某些列的频率计数。我有一个像这样的数据框 动物 正文第1部分 正文第2部分 正文第3部分 猴子 尾巴 头 腿 大象 头 尾巴 大旅行箱 猴子 耳朵 头 腿 大象 眼睛 尾巴 腿 一种方法是融化数据,然后groupby().value\u counts() 输出: Animal Elephant Monkey value Ears 0 1 Eyes 1

我试图用python获取数据帧中某些列的频率计数。我有一个像这样的数据框

动物 正文第1部分 正文第2部分 正文第3部分 猴子 尾巴 头 腿 大象 头 尾巴 大旅行箱 猴子 耳朵 头 腿 大象 眼睛 尾巴 腿
一种方法是融化数据,然后
groupby().value\u counts()

输出:

Animal  Elephant   Monkey 
value                     
Ears            0        1
Eyes            1        0
Head            1        2
Legs            1        2
Tail            2        1
Trunk           1        0

选项2:与选项1类似,使用
set_index().stack()
代替
melt

(df.set_index('Animal')
   .stack().groupby(level=0)
   .value_counts()
   .unstack(level=0, fill_value=0)
)

选项3:与选项1类似,但带有pd。交叉表:

tmp = df.melt('Animal')
out = pd.crosstab(tmp['value'], tmp['Animal'])

选项4:应用
系列。行上的值\u计数

(df.set_index('Animal')
   .apply(pd.Series.value_counts, axis=1)
   .sum(level=0).T
)
(df.set_index('Animal')
   .apply(pd.Series.value_counts, axis=1)
   .sum(level=0).T
)