web-dev-qa-db-ja.com

パンダ、日時フォーマットmm / dd / yyyyをdd / mm / yyyyに変換

Csvのデフォルトの形式はdd/mm/yyyyです。 df['Date']=pd.to_datetime(df['Date'])で日時に変換すると、mm // dd/yyyyにフォーマットが変わります。

次に、df['Date'] = pd.to_datetime(df['Date']).dt.strftime('%d/%m/%Y')を使用してdd/mm/yyyyに変換しましたが、これらは文字列(オブジェクト)形式です。ただし、それらをdatetime形式に変更する必要があります。これ(df['Date']=pd.to_datetime(df['Date']))を再度使用すると、以前の形式に戻ります。君の力が必要

4
Amn Kh

_parse_dates_の_pd.read_csv_およびdayfirst引数を使用できます。以下を参照してください。 read_csv()のドキュメント

_df = pd.read_csv('myfile.csv', parse_dates=['Date'], dayfirst=True)
_

これにより、Date列が日時値として読み込まれ、日付入力の最初の部分が日として正しく取得されます。一般に、日付はdatetimeオブジェクトとして格納する必要があることに注意してください。

次に、日付を文字列として出力する必要がある場合は、dt.strftime()を呼び出すことができます。

_df['Date'].dt.strftime('%d/%m/%Y')
_
3
rje

これをもう一度使用すると、df['Date'] = pd.to_datetime(df['Date'])は以前の形式に戻ります。

いいえ、選択した文字列形式を同時に使用して、一連の型datetimeを保持することはできません。述べたように ここ

datetimeシリーズは整数として内部的に保存されます。人間が読める形式の日付表現は、表現であり、基になる整数ではありません。カスタムフォーマットにアクセスするには、パンダで利用可能なメソッドを使用できます。そのようなテキスト表現をpd.Series変数:

formatted_dates = df['datetime'].dt.strftime('%m/%d/%Y')

dtype/formatted_datesobjectになります。これは、系列の要素が任意のPython回を指すことを示します。この場合、これらの任意の型はたまたますべて文字列です。

最後に、ワークフローの最後のステップまで、datetimeシリーズを文字列に変換するしないことを強くお勧めします。これを行うと、そのようなシリーズで効率的なベクトル化された操作を使用できなくなるためです。

2
jpp