使用
pd.groupby(['col_1','col_2']).sum()
时会将字符串相加。例如某个类别变量col_3,可能的值为A、B、C,分组聚合后可能会变成AACBB。
这是要避免的事情。
我应该更改哪些参数或者我应该做什么?
下面的示例数据和结果符合您的需求吗?
创建一些测试数据(50行):
import pandas as pd
import numpy as np
np.random.seed(0)
df = pd.DataFrame({
'col_1': np.random.choice([10, 15, 20, 25], size=50),
'col_2': np.random.choice([10, 20], size=50),
'col_3': np.random.choice(['A', 'B', 'C'], size=50),
'col_4': np.random.choice([1, 2, 3, 4], size=50)
})
为了避免在第 3 列上聚合,您可以使用
df.drop(columns='col_3').groupby(['col_1', 'col_2']).sum()
原来的
groupby
,我认为它复制了你的问题:
df.groupby(['col_1', 'col_2']).sum()