【问题标题】:Can't make pandas group by timeframe无法按时间段使熊猫分组
【发布时间】:2018-08-31 04:13:23
【问题描述】:

提前感谢您的任何意见......

我正在尝试将一些温度读数组合在一起,以便比较两组读数。下面我试着做一分钟,但如果是一个小时也没关系。

数据似乎可以通过,只是无法正确分组。它只是列出了所有的温度读数(每分钟很多)。

数据在这里:https://github.com/uilfut/pi_code/blob/master/tinydb_environment.json

'date_time' 是日期时间列

'tempC'是温度列

from pandas.io.json import json_normalize
import datetime as dt
import numpy as np
with open('/home/data.json') 
as f:
    data = json.load(f)

df = pd.DataFrame.from_dict({(i, j): data[i][j] for i in data.keys() 
for j in data[i].keys()}, orient='index')
df['data_source'] = df.index.droplevel(level=1)
df.index = df.index.droplevel(level=0)

df['date_time'] = pd.to_datetime(df['date_time'])

# this next line doesn't work - 
df.set_index('date_time').groupby(pd.Grouper(freq='T, min')['tempC'].mean()

print(df.head(10))

我也试过

# df['time'] = df['date_time'].dt.time
# df.groupby(pd.TimeGrouper('5Min'))['tempC'].mean().dropna()
# df.set_index('date_time').groupby(pd.TimeGrouper('1hour'))
['tempC'].mean().dropna()
# df.set_index('date_time').groupby(pd.Grouper(freq='T, min'))
['tempC'].mean()
# df.set_index('time').resample("H").mean()
# df.set_index('date_time').resample('5min', how=np.mean)

希望这对某人来说很容易!

非常感谢

【问题讨论】:

    标签: python pandas datetime pandas-groupby


    【解决方案1】:

    您的groupby 行缺少),并且pandas 0.22 无法识别频率T, min。试试这个:

    df.set_index('date_time').groupby(pd.Grouper(freq='min'))['tempC'].mean()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-07
      • 2014-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-30
      • 2016-06-24
      • 2023-03-16
      相关资源
      最近更新 更多