Skip to main content
 首页 » 编程设计

python之groupby 结果数据帧连接

2025年05月04日13zhwl

我有一个看起来像这样的数据集:

number   day        hour 
12       20180101   10 
7        20180101   10 
8        20180101   11 
78       20180101   12 

我想得到一个按天、小时分组的新数据框,有一个数字总和,所以结果看起来像:

time         amount 
2018010110   19 
2018010111    8 
2018010112   78 

为此,我编写了以下内容:

new_df['amount'] = df.groupby(['day','hour'])['number'].agg('sum') 

我得到的结果是 但是日和时似乎是数字的子键。我如何转换 new_df 以便它只有所需的列?

如果我尝试访问 new_df['day'] 或 new_df['amount']['day'],我会收到 key 不存在的错误消息。

如果我可以访问它,我会运行类似的东西

new_df['time'] = new_df.... .map(str) + new_df... .map(str) 

请您参考如下方法:

IIUC:

In [24]: df['day_hour'] = df['day'].astype(str)+df['hour'].astype(str) 
 
In [27]: wd.groupby(['day_hour'],as_index=False)['number'].sum() 
Out[27]:  
     day_hour  number 
0  2018010110      19 
1  2018010111       8 
2  2018010112      78