私は以下のように日付の範囲の範囲を持っています:
Date
2017-04-02 12:00 AM
2017-04-02 01:00 AM
2017-04-02 02:00 AM
2017-04-02 03:00 AM
2017-04-02 04:00 AM
2017-04-02 05:00 AM
2017-04-02 06:00 AM
2017-04-02 07:00 AM
2017-04-02 08:00 AM
2017-04-02 09:00 AM
2017-04-02 10:00 AM
私はそれらをすべてx軸にプロットするためにPythonの日付時刻に変換したいと思います。次のコードを使用しました:
dates=fire["Date"]#copy date value in dataframe
x = dt.datetime.strptime("dates","%Y-%m-%d %I:%M %p").date()
しかし、それは私にエラーを与える:
time data "d" does not match format "%Y-%m-%d %I:%M %p"
どのようにこれらの日付をすべてPythonの読み込み可能な日付に変換できますか?
回答:
回答№1の場合は3d
変数なので、引用符を削除する必要があります:
x = [dt.datetime.strptime(d,"%Y-%m-%d %I:%M %p").date() for d in dates]
編集:再現可能な例
OP要求に続いて、ここには再現可能な例があります:
import pandas as pd
import datetime as dt
from StringIO import StringIO
data="""
Date
2017-04-02 12:00 AM
2017-04-02 01:00 AM
2017-04-02 02:00 AM
2017-04-02 03:00 AM
2017-04-02 04:00 AM
2017-04-02 05:00 AM
2017-04-02 06:00 AM
2017-04-02 07:00 AM
2017-04-02 08:00 AM
2017-04-02 09:00 AM
2017-04-02 10:00 AM
"""
# StringIO is used to simulate reading from a csv file
df = pd.read_csv(StringIO(data))
print(df.head())
dates = df["Date"]
x = [dt.datetime.strptime(d,"%Y-%m-%d %I:%M %p").date() for d in dates]
print(x)
出力:
[datetime.date(2017, 4, 2), datetime.date(2017, 4, 2), datetime.date(2017, 4, 2), datetime.date(2017, 4, 2), datetime.date(2017, 4, 2), datetime.date(2017, 4, 2), datetime.date(2017, 4, 2), datetime.date(2017, 4, 2), datetime.date(2017, 4, 2), datetime.date(2017, 4, 2), datetime.date(2017, 4, 2)]
副題として、パンダは次のようにあなたのための日付を解析することができます:
df2 = pd.read_csv(StringIO(data), parse_dates=["Date"])
出力:
Date
0 2017-04-02 00:00:00
1 2017-04-02 01:00:00
2 2017-04-02 02:00:00
3 2017-04-02 03:00:00
4 2017-04-02 04:00:00