Pandas:有效地用代表值替换合并的列

问题描述 投票:1回答:1

我想对数据进行分类并为每个分类选择一个特定的聚合。

import pandas as pd
df = pd.DataFrame({ 
  'A': [1, 2, 3, 4],
  'B': [1, 2, 3, 4],
})
groups = pd.cut(df['A'], bins=2, labels=False)
group_reps = df.groupby([groups]).agg(A=('A', 'mean'))
# ... some magic happens here to replace values in A by group_reps ...
# 
# expected result
# A, B
# 1.5, 1
# 1.5, 2
# 3.5, 3
# 3.5, 4

对于大小接近机器内存的数据,如何有效实施?

pandas performance binning
1个回答
0
投票

如果要更改一列,则可以单独处理。另外,transform可帮助您使聚合与原始索引对齐:

df['A'] = df['A'].groupby(groups).transform('mean')
© www.soinside.com 2019 - 2024. All rights reserved.