文字列をDatetimeに解析する
to_datetimeと書式の扱い
「文字列をDatetimeに解析する」はCoddyKit上の無料Data Science Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはData Science Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Data Science Academyコースには全4レッスンが含まれています。
日付がテキストとして隠れている
CSVを読み込むと、日付は通常、単なる文字列として取り込まれます。見た目は正しくても、pandasにはテキストとして扱われるため、まだ日付の計算はできません。📅
to_datetimeを使う
解決策はpd.to_datetimeという1つの関数です。テキストを調べ、各値をpandasで計算できる本物のタイムスタンプに変換します。
import pandas as pd
ts = pd.to_datetime("2024-03-15")
print(ts)列全体を変換する
Seriesを渡すと、タイムスタンプの列が返されます。日付フィールドを含むテーブルを読み込んだ直後に行う、日常的な操作です。
df["date"] = pd.to_datetime(df["date"])dtypeを確認する
変換後、列のdtypeはdatetime64になります。この1回の確認で、解析が実際に成功し、日付の計算が使える状態になったことがわかります。
print(df["date"].dtype) # datetime64[ns]さまざまな形式を1回で処理する
to_datetimeは賢い関数です。ISO形式の日付、スラッシュ区切り、さらには月名を含む日付も自動的に読み取ります。整ったISO文字列なら、ほかに指定する必要はほとんどありません。
pd.to_datetime(["2024-01-01", "Jan 2, 2024"])形式を明示する
日付が曖昧な場合は、明示的なformat文字列を指定します。推測をなくせるうえ、大きな列では処理も大幅に速くなります。
pd.to_datetime("15/03/2024", format="%d/%m/%Y")日が先に来る日付
03/04は3月でしょうか、それとも4月でしょうか? dayfirst=Trueを設定すると、pandasは月より先に日を読み取り、多くのヨーロッパ式の日付表記に合わせられます。
pd.to_datetime("03/04/2024", dayfirst=True)エラーを起こさず不正な値を処理する
1つの不正なセルが、列全体の解析を失敗させることがあります。errors="coerce"を使うと、解析できない値をエラーにせずNaTに変換できます。
pd.to_datetime("not-a-date", errors="coerce") # NaTNaTの紹介
NaTはNaNの日付時刻版で、欠損したタイムスタンプを表します。isnaで解析に失敗した値を見つけ、処理方法を決められます。
df["date"].isna().sum() # count failed parses日付と時刻の部分を結合する
日付列と時刻列が分かれていますか? それらを1つの文字列に連結してから、1回で解析します。最終的に、整った1つのタイムスタンプになります。
pd.to_datetime(df["day"] + " " + df["time"])読み込み時に解析する
インポート時に解析すれば、手順を1つ省略できます。read_csvにparse_datesを渡すと、列が最初からdatetimeとして読み込まれます。
pd.read_csv("sales.csv", parse_dates=["date"])確認問題
日付列に、欠損値として扱いたい不正な値がいくつかあります。
まとめ:日付を解析できる
pd.to_datetimeでテキストを本物のタイムスタンプに変換し、形式を制御し、coerceで不正な値を処理し、読み込み時の解析も行いました。これで日付の計算を使えるようになりました。🎉
よくある質問
「文字列をDatetimeに解析する」レッスンは無料ですか?
はい。「文字列をDatetimeに解析する」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Data Science Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Data Science Academyコースには全4レッスンが含まれています。
「文字列をDatetimeに解析する」で何を学びますか?
to_datetimeと書式の扱い ブラウザで直接実行するハンズオンコードでData Science Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Data Science Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのData Science Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「文字列をDatetimeに解析する」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このData Science Academyレッスンでコードを書いて実行できますか?
はい。すべてのData Science Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- 文字列をDatetimeに解析する
- 年、月、曜日を取り出す
- 日次または月次にresampleする
- タイムゾーンと日付範囲