excel - 如何使用 Pandas 按两列进行分组?

标签 excel python-3.x pandas

我正在研究一种算法,该算法需要按两列分组。 Pandas 支持按两列分组,方法是:

df.groupby([col1, col2])

但是生成的数据帧不是所需的数据帧

工作设置:
Python: v3.5
Pandas : v0.18.1

Pandas Dataframe - 输入数据:

     Type                  Segment
id                              
1   Domestic                 1
2     Salary                 3
3        NRI                 1
4     Salary                 4
5     Salary                 3
6        NRI                 4
7     Salary                 4
8     Salary                 3
9     Salary                 4
10       NRI                 4

所需数据框: 每个分割中的[国内、薪资、NRI] 计数

                  Domestic    Salary    NRI
        Segment
              1          1       3       1
              3          0       0       0
              4          0       3       2                   

实验:

group = df.groupby(['Segment', 'Type'])
group.size()

Segment           Type        Count
1                 Domestic    1
                  NRI         1
3                 Salary      3
4                 Salary      3
                  NRI         2

我能够使用 MS Excel 数据透视表功能获得所需的数据框。有什么方法可以使用 pandas 获得类似的结果吗?

最佳答案

Groupby.size操作之后,创建了一个多索引(2级索引)series对象,需要将其转换为一个数据框,可以通过unstacking来完成第二级索引并可选地填充用 0 获得的 NaN

df.groupby(['Segment', 'Type']).size().unstack(level=1, fill_value=0)

enter image description here

关于excel - 如何使用 Pandas 按两列进行分组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41124106/

相关文章:

vba - 如何访问过滤列表内的范围以检索值?编程语言

c# - OleDb 异常。没有为一个或多个必需参数提供值

Django - 用作表达式的子查询返回不止一行

python - 为什么 pandas.to_csv 为整数写 float ?

excel - 从并行循环中访问 Excel 工作簿时出错

Vba宏如果单元格包含值,则在其他单元格上输入特定文本

python - Python 中单个函数连续执行之间的时间

python - 调用元类基础时出错

python - 根据同一数据框的另一列更新分数列

python pandas多索引数据框选择