parser_dates
は、read_csv
関数のオプションの1つで、CSVファイル内の日付情報を解析して、datetime型のデータとして取得するために使用されます。このオプションは、デフォルトでFalseになっており、日付情報を文字列として読み込むだけです。
import pandas as pd
# 日付情報を含むCSVファイルの読み込み
df = pd.read_csv("ファイル名.csv", parse_dates=["日付列"])
# 読み込んだデータの表示
print(df)
上記のコードでは、parse_dates
オプションに["日付列"]
を指定しています。これにより、日付列に含まれる情報が解析され、datetime型のデータとして読み込まれます。
複数の日付列がある場合には、以下のように複数の列名をリストで指定することもできます。
import pandas as pd
# 複数の日付情報を含むCSVファイルの読み込み
df = pd.read_csv("ファイル名.csv", parse_dates=["日付列1", "日付列2"])
# 読み込んだデータの表示
print(df)
上記のコードでは、parse_dates
オプションに["日付列1", "日付列2"]
を指定しています。これにより、日付列1と日付列2に含まれる情報が解析され、datetime型のデータとして読み込まれます。
parse_dates
オプションには、True
を指定することもできます。この場合、全ての列について日付情報を解析しますが、解析に失敗した場合にはその列を文字列として読み込みます。
import pandas as pd
# 全ての列について日付情報を解析する
df = pd.read_csv("ファイル名.csv", parse_dates=True)
# 読み込んだデータの表示
print(df)
上記のコードでは、parse_dates
オプションにTrue
を指定しています。これにより、全ての列について日付情報を解析します。ただし、解析に失敗した場合にはその列を文字列として読み込みます。
ただし、日本語表記の日付は正しく読み込めないため、date_parser を使って日付処理を行う必要があります。
例えば、日付列が「21/10/11」(2021年10月11日)などの表記だった場合は、以下のような処理を行います。
def date_adj(x): from datetime import datetime return datetime.strptime(x.split()[0], '%y/%m/%d') data = pd.read_csv("data_day.csv", parse_dates=['日付'], date_parser=date_adj)