python - pythonivot_table 的替代方案,用于两个变量的频率表

标签 python r pivot-table frequency

对于这样的数据

import pandas as pd

df=pd.DataFrame({'group1': list('AABBCCAABBCC'),'group2':list('ZYYXYXXYZXYZ')})

我费了好大劲才发现,要制作行列频数表,最常用的方法如下

print df.pivot_table(index='group1',columns='group2',aggfunc=len,fill_value=0)

由此我得到

group2  X  Y  Z
group1         
A       1  2  1
B       2  1  1
C       1  2  1

我只是想知道是否有任何“更快”的方法来生成相同的表。并不是说它有什么问题,而是我的意思是减少输入(不需要我编写自定义函数)

我只是将其与 R 进行比较,通过 R 可以获得相同的结果

 table(df$group1,df$group2)

与此相比,输入非默认参数,例如 aggfuncfill_value 并输入参数名称、indexcolumns 似乎需要很多额外的努力。

总的来说,我的经验(非常有限)是Python中的R等效函数在简洁性上非常相似。

任何关于替代方法的建议都会很棒。我需要用我的数据制作几个这样的表格。

最佳答案

这是一种替代方法。

>>> df.groupby(['group1', 'group2']).group2.count().unstack().fillna(0)
group2  X  Y  Z
group1         
A       1  2  1
B       2  1  1
C       1  2  1

关于python - pythonivot_table 的替代方案,用于两个变量的频率表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35469503/

相关文章:

python - 在 Django/python 中更改 "Authentication and Authorization"菜单的名称

r - r 中的数据帧转换

r - 在 R 中创建客户流失的二进制响应变量

python - Azure Databricks Notebook 中的 Pandas 缺少 read_parquet 函数

python - 是否可以将一个数据帧与另一个数据帧分开?

python - Azure 日志分析 : How to send custom python pandas DataFrames into LAW

r - data.table 中有没有办法根据标识符按组分配 ID?

python - pandas - 在分组数据框中显示 N 个最高计数

Python-Pandas : How to sort a pivot table maintaining one column grouped

r - 在 R 中一次旋转表多个变量