【问题标题】:Pandas and python datetime timestamps from CSV来自 CSV 的 Pandas 和 python 日期时间时间戳
【发布时间】:2016-03-19 10:42:36
【问题描述】:

我有一个潮汐数据的 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: 第一个参数必须是一个序列

我的最终目标是将数据重新采样到不同的采样频率,但这似乎是我的第一个障碍。

【问题讨论】:

    标签: python csv datetime pandas


    【解决方案1】:

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

    import pandas as pd
    
    df = pd.read_csv('df.csv', parse_dates = True, index_col = 0)
    

    然后df.plot() 会给你一个时间序列图,时间在 x 轴上。如果您希望将索引作为日期时间对象访问,您可以这样做

    df.index.to_pydatetime()
    

    【讨论】:

    • 非常感谢 - 我不明白 index_col 标志的重要性,并且从这个答案中我学到了一些东西。
    猜你喜欢
    • 2014-05-22
    • 1970-01-01
    • 2020-06-27
    • 2016-03-21
    • 2023-03-27
    • 2013-03-02
    • 1970-01-01
    • 2018-06-20
    • 2017-02-01
    相关资源
    最近更新 更多