【问题标题】:Python dataframe resample TypeErrorPython数据框重采样TypeError
【发布时间】:2017-12-02 21:26:43
【问题描述】:

我有一个 pd.DataFrame,我想每十分钟重新采样一次。 对于重采样,我像这样索引了我的数据框:

re_in = Re.set_index(pd.DatetimeIndex(Re['time'])) # index Re

得到 re_in 的结果如下:

time                 time                   T   WR    WS    WG   U    R   RC                                                                           
2017-06-22 00:00:00  2017-06-22 00:00:00  21.8  159   5.8   7.9  66  0.0  0.0   
2017-06-22 00:05:00  2017-06-22 00:05:00  21.9  173   9.0  11.9  65  0.0  0.0   
2017-06-22 00:10:00  2017-06-22 00:10:00  21.9  145   4.0   4.0  66  0.0  0.0   
2017-06-22 00:15:00  2017-06-22 00:15:00  21.9  158   6.8   7.9  67  0.0  0.0   
2017-06-22 00:20:00  2017-06-22 00:20:00  21.9  149   6.4   7.9  68  0.0  0.0   
2017-06-22 00:25:00  2017-06-22 00:25:00  21.9  156   4.7   7.9  68  0.0  0.0   
2017-06-22 00:30:00  2017-06-22 00:30:00  21.8  153   3.2   4.0  69  0.0  0.0 

我尝试使用此代码进行采样:

av_temp['RE_mean'] = re_in.T.resample("10T").mean() # average Re

但我得到了错误:

  File "C:\ProgramData\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 880, in runfile
    execfile(filename, namespace)

  File "C:\ProgramData\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 102, in execfile
    exec(compile(f.read(), filename, 'exec'), namespace)

  File "M:/Python/Testveld/Software/selecting_date_temperature_av.py", line 234, in <module>
    av_temp['WH_mean'] = re_in.T.resample(SAMPLE).mean() # average renkforce

  File "C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\generic.py", line 4212, in resample
    base=base, key=on, level=level)

  File "C:\ProgramData\Anaconda3\lib\site-packages\pandas\tseries\resample.py", line 944, in resample
    return tg._get_resampler(obj, kind=kind)

  File "C:\ProgramData\Anaconda3\lib\site-packages\pandas\tseries\resample.py", line 1057, in _get_resampler
    "but got an instance of %r" % type(ax).__name__)

TypeError: Only valid with DatetimeIndex, TimedeltaIndex or PeriodIndex, but got an instance of 'Index' 

当我检查 re_in.index 时,它说它是一个 DatetimeIndex。

print(re_in.index)
DatetimeIndex(['2017-06-22 00:00:00', '2017-06-22 00:05:00',
               '2017-06-22 00:10:00', '2017-06-22 00:15:00',
               '2017-06-22 00:20:00', '2017-06-22 00:25:00',
               '2017-06-22 00:30:00', '2017-06-22 00:35:00',
               '2017-06-22 00:37:00', '2017-06-22 00:42:00',
               ...
               '2017-06-22 23:15:00', '2017-06-22 23:20:00',
               '2017-06-22 23:25:00', '2017-06-22 23:30:00',
               '2017-06-22 23:35:00', '2017-06-22 23:40:00',
               '2017-06-22 23:45:00', '2017-06-22 23:46:00',
               '2017-06-22 23:51:00', '2017-06-22 23:56:00'],
              dtype='datetime64[ns]', name='time', length=288, freq=None)

我该如何解决这个问题?

【问题讨论】:

  • 您要重新采样T 列吗?

标签: python dataframe typeerror


【解决方案1】:

Tpandas.DataFrame 的属性,它将transpose 您的数据框,您需要使用['T']

av_temp['RE_mean'] = re_in['T'].resample("10T").mean() # average Re

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-04
    • 1970-01-01
    • 2019-04-15
    • 2021-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多