【发布时间】:2023-09-18 23:49:01
【问题描述】:
我在 pandas 中使用 split-apply-combine 模式通过自定义聚合函数对我的 df 进行分组。 但这会返回一个不需要的 DataFrame,其分组列存在两次:在 MultiIndex 和列中。
以下是我的问题的简化示例。
说,我有这个 df
df = pd.DataFrame([[1,2],[3,4],[1,5]], columns=['A','B']))
A B
0 1 2
1 3 4
2 1 5
我想按 A 列分组,只保留 B 具有偶数值的那些行。因此,所需的 df 是这样的:
B
A
1 2
3 4
自定义函数 my_combine_func 应该进行过滤。但是在 groupby 之后应用它会导致 MultiIndex 与前一个 Index 在第二级。因此列 A 存在两次。
my_combine_func = group[group['B'] % 2 == 0]
df.groupby(['A']).apply(my_combine_func)
A B
A
1 0 1 2
3 1 3 4
如何应用自定义组函数并获得所需的df?
【问题讨论】:
标签: pandas dataframe pandas-groupby split-apply-combine