猿问

pandas Sqlite 和重新采样错误仅对 DatetimeIndex 有效

我正在尝试使用 pandas 和 sqlite 将数据读入数据帧。


我认为如果我从 CSV 文件中读取数据,这段重新采样为每小时平均值的代码是有效的,但我不确定为什么是从 Sqlite 读取?抱歉,我对数据库知之甚少,非常感谢任何提示。


如果我运行下面的代码,我可以打印第一个 df 但重新采样错误:


import pandas as pd

from sqlalchemy import create_engine

import sqlite3



con = sqlite3.connect('./save_data.db')

df = pd.read_sql("SELECT * from all_data", con, index_col='Date', parse_dates=True)

df.set_index('Date')

print(df)


hourly_avg['kW'] = df['kW'].resample('H').mean()


print('hourly_avg.kW', hourly_avg.kW)

输出:


>>> 

=== RESTART: C:\Users\Desktop\tester\Test.py ===

                            Date         kW

0     2020-10-08 12:23:30.968967  68.129997

1     2020-10-08 12:25:39.375298  68.129997

2     2020-10-08 12:26:52.939991  68.129997

3     2020-10-08 12:27:57.839540  68.129997

4     2020-10-08 12:29:02.382524  68.129997

...                          ...        ...

1917  2020-10-09 10:14:35.113254  68.149994

1918  2020-10-09 10:15:08.840759  68.189995

1919  2020-10-09 10:15:41.873328  68.249992

1920  2020-10-09 10:16:14.953312  68.289993

1921  2020-10-09 10:16:48.043465  68.289993


[1922 rows x 2 columns]

Traceback (most recent call last):

  File "C:\Users\Desktop\tester\Test.py", line 11, in <module>

    hourly_avg['kW'] = df['kW'].resample('H').mean()

  File "C:\Users\AppData\Local\Programs\Python\Python37\lib\site-packages\pandas\core\generic.py", line 8087, in resample

    offset=offset,

  File "C:\Users\AppData\Local\Programs\Python\Python37\lib\site-packages\pandas\core\resample.py", line 1269, in get_resampler

    return tg._get_resampler(obj, kind=kind)

  File "C:\Users\AppData\Local\Programs\Python\Python37\lib\site-packages\pandas\core\resample.py", line 1435, in _get_resampler

    "Only valid with DatetimeIndex, "

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

>>> 


摇曳的蔷薇
浏览 128回答 1
1回答

神不在的星期二

你需要使用 aDatetimeindex但你忘记了inplace=True尝试这个:df.set_index('Date', inplace=True)而不是这个:df.set_index('Date')这应该可以解决它。
随时随地看视频慕课网APP

相关分类

Python
我要回答