小编pla*_*360的帖子

用两列对 pandas groupby 进行排序

我正在尝试将数据框与两列分组,并避免使用“sort = False”进行默认排序。但是,我无法实现这一目标。

这是简化的示例

df = pd.DataFrame([
        ['zebra', 1, 10],
        ['zebra', 2, 10],
        ['apple', 3, 20],
        ['apple', 4, 20],
    ],
    columns=['ColA','ColB','ColC'])
Run Code Online (Sandbox Code Playgroud)

因此 df 是

    ColA  ColB  ColC
0  zebra     1    10
1  zebra     2    10
2  apple     3    20
3  apple     4    20
Run Code Online (Sandbox Code Playgroud)

我正在使用 pandas (1.0.3) groupby 并禁用键排序

df_agg = df.groupby(by=['ColA','ColB'], sort = False)

df_agg.groups
Run Code Online (Sandbox Code Playgroud)

结果是

{('apple', 3): Int64Index([2], dtype='int64'),
 ('apple', 4): Int64Index([3], dtype='int64'),
 ('zebra', 1): Int64Index([0], dtype='int64'),
 ('zebra', 2): Int64Index([1], dtype='int64')}
Run Code Online (Sandbox Code Playgroud)

与“sort = True”相同(默认)

但是,我想要的是如下

{
 ('zebra', 1): Int64Index([0], …
Run Code Online (Sandbox Code Playgroud)

python pandas

3
推荐指数
1
解决办法
1297
查看次数

标签 统计

pandas ×1

python ×1