在 Pandas 中连接两个 groupby Dataframe 时出错

sco*_*tin 2 python pandas

我有一个包含每日销售数据的 Dataframe,我使用它创建了一个 groupby 函数,如下所示:

df_new1 = df_1.groupby(['emp_id']).size() 
df_new2 = df_2.groupby(['emp_id']).size()
Run Code Online (Sandbox Code Playgroud)

df_new1 的示例输出:

emp_id,count1
101,2
102,4
Run Code Online (Sandbox Code Playgroud)

df_new2 的示例输出:

emp_id,count2
101,4
102,6
Run Code Online (Sandbox Code Playgroud)

我正在尝试比较上述两个数据帧(df_new1df_new2),如下所示:

new_df = pd.concat(df_new1, df_new2)
Run Code Online (Sandbox Code Playgroud)

这会引发错误:

TypeError: first argument must be an iterable of pandas objects, you passed an object of type "Series"
Run Code Online (Sandbox Code Playgroud)

预期输出:

emp_id,count1,count2
101,2,4
102,4,6
Run Code Online (Sandbox Code Playgroud)

其中 count1 是来自的值df_new1,count2 是来自的值df_new2

Vai*_*ali 6

df_new1 和 df_new2 都是系列而不是数据帧,因为您没有在 groupby 之后重置索引。您可以连接多个系列,它们将连接到索引上。尝试

new_df = pd.concat([df_new1, df_new2], axis = 1)
Run Code Online (Sandbox Code Playgroud)