value_counts不允许我通过其他列进一步细分。基本上,我想做的就是在熊猫中重新创建这样的东西:
数据在这里https://data.seattle.gov/Community/Seattle-Pet-Licenses/jguv-t9rb
为简单起见,此刻我只想将数据分为3列: 名字,猫(名字数),狗(名字数)。
我一直在环顾四周,并尝试使用groupby和ivot_tables,但我认为我不太了解。
我尝试过的事情:
`animal_names.groupby(['animals_name',
'species']).size().sort_values(ascending=False)`
返回:
`animals_name species
Lucy Dog 335
Charlie Dog 306
Bella Dog 248
Luna Dog 242
Daisy Dog 217
...
Mossi Dog 1
Mosses Dog 1
Mossberg Dog 1
Moska Dog 1
"Luci" Lucia Rosalin Wicksugal Dog 1
Length: 16749, dtype: int64`
我已经尝试过:
`animal_names.pivot_table(
index=['animals_name', 'species'],
values='primary_breed',
aggfunc='count')
`
哪个也不返回期望值。
有没有办法做一件简单的事情
dataframe['animals_name'].value_counts()
,然后将结果划分为另一列(在这种情况下为物种)?
答案 0 :(得分:0)
你很近。
df=animal_names.pivot_table( index='animals_name', columns='species', aggfunc='count')
值是可选的,为帮助您记住数据透视的工作原理,请看一下最终表。
答案 1 :(得分:0)
请尝试以下方法:
df = pd.pivot_table(data1,index="Animal's Name",columns = "Species",aggfunc = np.count_nonzero)
数据1包含两列,动物名称和物种。
输出将显示各个物种的名称和计数。
会有NAN值,您可以将其替换为零。