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