小编Coo*_*ter的帖子

熊猫嵌套groupby产生意外结果

我正在研究在熊猫DataFrame上使用嵌套groupby.apply的问题。在第一个应用中,我将添加一个列,用于第二个内部groupby.apply。合并的结果对我来说似乎是错误的。谁能向我解释为什么出现以下现象以及如何可靠地解决它?

这是一个最小的示例:

import numpy as np
import pandas as pd

T = np.array( [
        [1,1,1],
        [1,1,1],
        [1,2,2],
        [1,2,2],
        [2,1,3],
        [2,1,3],
        [2,2,4],
        [2,2,4],
])

df = pd.DataFrame(T, columns= ['a','b','c' ])

print(df)


def foo2(x):
    return x

def foo(x):

    print("*" * 80 )

    # Add column d and groupby/apply on column 'd'
    x['d'] = [1, 1, 2, 2]
    x = x.groupby('d').apply(foo2)

    print(x)

    print("*" * 80)
    return x


# Apply first groupby/apply on column 'a'
df = df.groupby('a').apply( foo)

print("*"*80)
print("*"*80)

print(df)

Run Code Online (Sandbox Code Playgroud)

当我在Windows笔记本电脑上运行上述代码时,我得到了预期的结果

     a …
Run Code Online (Sandbox Code Playgroud)

python pandas pandas-groupby

5
推荐指数
1
解决办法
60
查看次数

标签 统计

pandas ×1

pandas-groupby ×1

python ×1