在快速的groupby操作中重新采样数据

时间:2018-09-02 13:45:38

标签: dask

在做出侵权结论之前,需要对空气质量测量值进行重新采样。通过亚马逊的Athena从openaq获得历史数据后,我现在坐在一个大文件(339Mb)的前面,我想按组重新采样。所以我的代码本质上是这样的:

import dask.dataframe as dd

df = dd.read_csv('chile.csv', encoding='latin-1')
gdf = df.groupby(['city','location','parameter']).apply(parseval)

其中parseval是重新采样并计算不良实例的函数:

def parseval(data):
    whoma = {'pm25': 25, 'pm10': 50, 'so2': 100, 
             'o3':100, 'no2': 200, 'co': 100}
    data = data.resample('12h')
    data['bad'] = [1 if drow['value']>whoma[drow['parameter']] else 0 
                        for _,drow in data.iterrows()]
return data.bad.mean()

但是,此操作失败并显示错误

TypeError(“仅对DatetimeIndex,TimedeltaIndex或PeriodIndex有效,但获得了'Int64Index'的实例,”)

我想念什么? 我的数据如下:

“日期”,“城市”,“位置”,“参数”,“值” “ 2015-09-23T10:00:00-03:00”,“Hualpén”,“ JUNJI”,“ pm10”,“ 31.44” “ 2015-09-23T10:00:00-03:00”,“ Talcahuano”,“ Indura”,“ co”,“ 2521.0” “ 2015-09-23T10:00:00-03:00”,“ Tocopilla”,“ Bomberos”,“ pm25”,“ 23.53” “ 2015-09-23T09:00:00-03:00”,“卡拉马”,“EstaciónCentro”,“ pm25”,“ 11.64” “ 2015-09-23T13:00:00-03:00”,“ Tocopilla”,“ Escuela E-10”,“ pm25”,“ 13.12”

0 个答案:

没有答案