从 Python 中的 CSV 中读取和绘制日期

Reading and Graphing Dates from a CSV in Python

我有一个 CSV,其中第一列是日期和时间,其余列是当时的测量值。日期的格式为 "MM/DD/YYYY hh:mm:ss",位于单列中。 Python 将其作为字符串读取。如何将其转换为日期和时间? Python 不知道“09/14/2016 23:00:00”正好在“09/15/2016 0:00:00”之前

在 MatLab 中,我可以使用

time = datenum(filename{:,1})

datetick('x','mmm-dd HH:MM:SS')

但我不确定在 Python 中使用什么。这种语言有类似的命令吗?我试过使用 datetime,但运气不佳。

谢谢!

注意:我正在使用 Pandas 读取 CSV

您必须将日期(时间戳)从字符串解析为 datetime dtype,以便对它们进行适当排序。如果您使用 pandas.read_csv 将 csv 加载到 DataFrame,最简单的方法是使用 parse_dates 关键字。例如:

from  io import StringIO
import pandas as pd

s="""Timestamp,Value
06/01/2020 17:05:00,9506.01
06/01/2020 17:10:00,9513.44
06/01/2020 17:15:00,9521.56"""

df = pd.read_csv(StringIO(s), parse_dates=["Timestamp"])

for c in df.columns:
    print(f"{c} - {df[c].dtype}")
# Timestamp - datetime64[ns]
# Value - float64

另一种选择是在导入后使用 pandas.to_datetime:

从字符串转换为日期时间
df = pd.read_csv(StringIO(s))
df["Timestamp"].dtype
# dtype('O') # after import we only have strings...
df["Timestamp"] = pd.to_datetime(df["Timestamp"])

for c in df.columns:
    print(f"{c} - {df[c].dtype}")
# Timestamp - datetime64[ns]
# Value - float64