首页 文章

麻烦重新取样Pandas中的数据

提问于
浏览
2

我正在尝试用Pandas重新采样天气数据 . 原始数据大约为5分钟 . 最后,我想导出单独的excel文件,并以5分钟,15分钟和1小时的间隔重新采样数据 .

我已成功将“时间”列设置为日期时间索引,但是当我尝试重新采样时,我不断收到“DataError:没有要聚合的数字类型”

我也尝试使用converters = {'TemperatureF':int ...等导入原始的excel文件

#Open Excel File With Original Timestamps
xlsx = pd.ExcelFile('IDLWeaterData_OriginalTime.xlsx')
df = pd.read_excel(xlsx)
print ('File read successfully')

# Set 'Time' Column as dataframe index
df.set_index(pd.DatetimeIndex(pd.to_datetime(df.Time)), inplace=True)
df.drop(['Time'],axis=1)

#Resample to 5 minute intervals
clean5 = df.resample('5min').mean()

任何导致这个问题的原因都很有用!谢谢!

以下是数据示例:

TemperatureF    DewpointF   PressureIn  Humidity    HourlyPrecipIn  dailyrainin SolarRadiationWatts/m^2
2016-01-01 00:04:00 31.9    22.2    30.51   67  0.00    0.00    0
2016-01-01 00:10:00 32.2    22.5    30.52   67  0.00    0.00    0
2016-01-01 00:16:00 32.5    23.1    30.51   68  0.00    0.00    0

1 回答

  • 2

    这就是您的数据发生的情况 .

    enter image description here

    要解决这个问题:

    >>> df[df.Time.notnull()].set_index('Time').astype(float).resample('5min')
                     TemperatureF  DewpointF  PressureIn  Humidity  HourlyPrecipIn  
    
    dailyrainin  SolarRadiationWatts/m^2
    Time                                                                                                                    
    2016-01-01 00:00:00          31.9      22.20       30.51        67               0            0                        0
    2016-01-01 00:05:00           NaN        NaN         NaN       NaN             NaN          NaN                      NaN
    2016-01-01 00:10:00          32.2      22.50       30.52        67               0            0                        0
    2016-01-01 00:15:00          32.5      23.10       30.51        68               0            0                        0
    2016-01-01 00:20:00          32.5      22.80       30.52        67               0            0                        0
    ...
    

相关问题