gpt4 book ai didi

python - 当只有一组时,Groupby apply 会进行不需要的转置

转载 作者:行者123 更新时间:2023-12-05 05:02:37 24 4
gpt4 key购买 nike

当对一个组进行 groupby-apply 时,Pandas 的行为不一致:

(
pd.DataFrame({'c1': [0, 0, 0],
'c2': [1, 2, 3]})
.groupby('c1')
.apply(lambda df: df['c2']).shape
)

等于(1, 3)

同时

(
pd.DataFrame({'c1': [0, 0, 1],
'c2': [1, 2, 3]})
.groupby('c1')
.apply(lambda df: df['c2']).shape
)

等于(3, )

当 groupby 变量中只有一个唯一值时,结果 Serie 会从我的预期中转置。

我需要一致的行为:无论组数如何,行数都必须保持在 3。

最佳答案

当您按只有一个值的列分组时,您可以在 .groupby(...) 中指定 squeeze=True,如下所示:

(
pd.DataFrame({'c1': [0, 0, 0],
'c2': [1, 2, 3]})
.groupby('c1', squeeze=True)
.apply(lambda df: df['c2']).shape
)

参见文档 here .

关于python - 当只有一组时,Groupby apply 会进行不需要的转置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62102565/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com