我有一个潮汐数据的csv文件,其中没有收集数据的空隙。看起来像这样:
datetime,tidal_water_level
2014-05-13 00:00:00,0.008
2014-05-13 01:00:00,-0.283
2014-05-13 02:00:00,-0.491
2014-05-13 03:00:00,-0.557
...
等等
我将其加载到数据帧中的开场白是:
import matplotlib.pyplot as plt
import datetime as dt
headers = ['timestamp', 'tide_height']
dtypes = [dt.datetime, float]
df = pd.read_csv('tides_clean.csv', names=headers, dtype=dtypes, header=1, parse_dates=True)
我从其他各种示例中总结了这些内容。它抱怨说dt.datetime不被理解。
如果我删除dtype参数,则它看起来像这样:
df
Out[103]:
timestamp tide_height
0 2014-05-13 01:00:00 -0.283
1 2014-05-13 02:00:00 -0.491
2 2014-05-13 03:00:00 -0.557
...
请问如何将时间序列数据本身作为日期时间类型而不是索引进行处理?例如,绘制时间与潮汐,而不是索引与潮汐
我尝试:plt.scatter(x = df.timestamp,y = df.tide_height)并得到一个空的1.0 x 1.0方形图,外加一个错误,因此:ValueError:第一个参数必须是一个序列
我的最终目标是将数据重新采样到不同的采样频率,但这似乎是我的第一个障碍。
您只需要这样做,pandas就可以理解数据类型:
import pandas as pd
df = pd.read_csv('df.csv', parse_dates = True, index_col = 0)
然后,df.plot()
您将获得一个时间序列图,其中时间在x轴上。如果您希望将索引作为日期时间对象进行访问,则可以执行
df.index.to_pydatetime()
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句