DataFrame分组求均值时保留Object类型日期时间列的方法
解决方案
直接用agg()方法指定不同列的聚合规则,替代单纯的mean(),就能同时保留每组的首个日期时间值、计算数值列的均值:
- 先定义分组键(以每300行一组为例,换成你需要的行数即可):
group_key = np.arange(len(data)) // 300 - 用
agg()设置各列的处理逻辑:df3 = data.groupby(group_key).agg( Date=('Date', 'first'), Time=('Time', 'first'), U=('U', 'mean'), V=('V', 'mean') )
补充说明
'first'会提取每组第一行的对应列值,刚好保留每组的首个日期和时间;'mean'对U、V列计算分组均值,和你原本的需求一致;- 如果想把Date和Time合并成完整的时间列再处理,可先做合并操作:
data['Datetime'] = pd.to_datetime(data['Date'] + ' ' + data['Time']) df3 = data.groupby(group_key).agg( Datetime=('Datetime', 'first'), U=('U', 'mean'), V=('V', 'mean') )
内容的提问来源于stack exchange,提问作者doctor strange
相关产品推荐
相关产品推荐

