我有一个这样的数据帧:
name = ['fred','fred','fred','james','james','rick','rick','jeff']
actionfigures = ['superman','batman','flash','greenlantern','flash','batman','joker','superman']
cars = ['lamborghini', 'ferrari','bugatti','ferrari','corvette','bugatti','bmw','bmw']
pets = ['cat','dog','bird','cat','dog','dog','fish','marmet']
test = pd.DataFrame({'name':name,'actfig':actionfigures,'car':cars,'pet':pets})
actfig car name pet
0 superman lamborghini fred cat
1 batman ferrari fred dog
2 flash bugatti fred bird
3 greenlantern ferrari james cat
4 flash corvette james dog
5 batman bugatti rick dog
6 joker bmw rick fish
7 superman bmw jeff marmet
如果我的术语不正确,请原谅,但是我想转换数据,以便在['actionfigures'、'car'、'pet']列中为每个名称获取每个值的计数。在
^{pr2}$我本以为test.pivot_table(index='name',columns=['actfig','car','pet'],aggfunc='size'])
就能做到,但它给了我一些奇怪的多级列。在
我想也许我可以为每一列合并get_dummies
,然后按名称和总和分组,但感觉pandas prob有更好的方法。在
怎么做呢?在
melt
和{或
^{pr2}$get_dummies
编辑:根据PiR
选项1
pd.get_dummies
按部件选项2
^{pr2}$stack
+pd.crosstab
相关问题 更多 >
编程相关推荐