CSV中的Pandas和python日期时间戳

CSV中的Pandas和python日期时间戳,python,csv,datetime,pandas,Python,Csv,Datetime,Pandas,我有一个潮汐数据的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 ... df Out[103]: timesta

我有一个潮汐数据的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
    ...
    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
    ...

我将其加载到数据帧的第一步是:

    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参数,则如下所示:

    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
    ...
    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
    ...
请问,如何将时间序列数据本身作为日期时间类型而不是索引使用?e、 g.绘图时间v。潮汐,而不是指数v。潮水

我尝试: plt.散射(x=df.时间戳,y=df.潮汐高度) 得到一个空的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轴上的时间序列图。如果希望将索引作为datetime对象访问,可以执行以下操作

df.index.to_pydatetime()

您只需要这样做,pandas就会理解数据类型:

import pandas as pd

df = pd.read_csv('df.csv', parse_dates = True, index_col = 0)
然后,
df.plot()
将为您提供x轴上的时间序列图。如果希望将索引作为datetime对象访问,可以执行以下操作

df.index.to_pydatetime()

非常感谢-我不理解index_col标志的意义,通过这个答案我学到了一些东西。非常感谢-我不理解index_col标志的意义,通过这个答案我学到了一些东西。