LGR*_*LGR 6 python dataframe pandas
这基本上是我的代码:
df = pd.read_csv('XBT_60.csv', index_col = 'date', parse_dates = True)
df.index.freq = 'H'
Run Code Online (Sandbox Code Playgroud)
我加载 csv,将索引设置为日期列,并将频率设置为“H”。但这会引发此错误:
ValueError: Inferred frequency None from passed values does not conform to passed frequency H
Run Code Online (Sandbox Code Playgroud)
日期列的格式为:2017-01-01 00:00:00
我已经尝试加载 csv 而不设置索引列,并在将其设置为索引之前在日期列上使用 pd.to_datetime ,但我仍然无法设置频率。我该如何解决这个问题?
顺便说一句:我的目标是使用 statsmodels 中的seasonal_decompose() 方法,所以我需要那里的频率。
如果缺少索引值,则无法设置频率:
>>> df
val
2019-09-15 0
2019-09-16 1
2019-09-18 3
>>> df.index.freq = 'D'
...
ValueError: Inferred frequency None from passed values does not conform to passed frequency D
Run Code Online (Sandbox Code Playgroud)
要查找缺失的索引,请使用:
>>> df = df.resample('D').first()
val
2019-09-15 0.0
2019-09-16 1.0
2019-09-17 NaN
2019-09-18 3.0
>>> df.index.freq
<Day>
Run Code Online (Sandbox Code Playgroud)
要进行调试,请查找丢失的索引:
>>> pd.date_range(df.index.min(), df.index.max(), freq='D').difference(df.index)
DatetimeIndex(['2019-09-17'], dtype='datetime64[ns]', freq=None)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3486 次 |
| 最近记录: |