Python
 Computer >> コンピューター >  >> プログラミング >> Python

PythonPandasの日時列から日付と時刻を分離するプログラムを作成します


データフレームに日時列があり、日付と時刻を次のように区切る結果があるとします。

   datetime    date          time
0 2020-01-01 07:00:00 2020-01-06 07:00:00
1 2020-01-02 07:00:00 2020-01-06 07:00:00
2 2020-01-03 07:00:00 2020-01-06 07:00:00
3 2020-01-04 07:00:00 2020-01-06 07:00:00
4 2020-01-05 07:00:00 2020-01-06 07:00:00
5 2020-01-06 07:00:00 2020-01-06 07:00:00

これを解決するために、以下のアプローチに従います-

ソリューション1

  • pd.date_range()を使用して、データフレームの「datetime」列を定義します。以下に定義されています

pd.DataFrame({'datetime':pd.date_range('2020-01-01 07:00',periods=6)})
  • forループd変数を設定して、df [‘datetime’]列に1つずつアクセスします。

  • forループから日付と時刻を変換し、df [‘date’]およびdf [‘time’]として保存します。以下に定義されています

for d in df['datetime']:
   df['date'] = d.date()
   df['time'] = d.time()

理解を深めるために、次のコードを確認してみましょう-

import pandas as pd
df = pd.DataFrame({'datetime':pd.date_range('2020-01-01 07:00',periods=6)})
print("DataFrame is:\n", df)
for d in df['datetime']:
   df['date'] = d.date()
   df['time'] = d.time()
print(df)

出力

DataFrame is:
             datetime
0 2020-01-01 07:10:00
1 2020-01-02 07:10:00
2 2020-01-03 07:10:00
3 2020-01-04 07:10:00
4 2020-01-05 07:10:00
5 2020-01-06 07:10:00
Date-time-hour-minutes :
             datetime    date      time
0 2020-01-01 07:10:00 2020-01-06 07:10:00
1 2020-01-02 07:10:00 2020-01-06 07:10:00
2 2020-01-03 07:10:00 2020-01-06 07:10:00
3 2020-01-04 07:10:00 2020-01-06 07:10:00
4 2020-01-05 07:10:00 2020-01-06 07:10:00
5 2020-01-06 07:10:00 2020-01-06 07:10:00
>

ソリューション2

  • データフレームを定義する

  • df [‘datetime’]内にpd.to_datetime()関数を適用し、dt.dateを使用して日付を選択し、それをdf [‘date’]

    として保存します。
  • df [‘datetime’]内にpd.to_datetime()関数を適用し、dt.timeを使用して時刻を選択し、それをdf [‘time’]

    として保存します。

理解を深めるために、次のコードを確認してみましょう-

import pandas as pd
df = pd.DataFrame({'datetime':pd.date_range('2020-01-01 07:10',periods=6)})
print("DataFrame is:\n", df)
df['date'] = pd.to_datetime(df['datetime']).dt.date
df['time'] = pd.to_datetime(df['datetime']).dt.time
print("Date-time-hour-minutes :\n", df)

出力

DataFrame is:
             datetime
0 2020-01-01 07:10:00
1 2020-01-02 07:10:00
2 2020-01-03 07:10:00
3 2020-01-04 07:10:00
4 2020-01-05 07:10:00
5 2020-01-06 07:10:00
Date-time-hour-minutes :
             datetime    date      time
0 2020-01-01 07:10:00 2020-01-06 07:10:00
1 2020-01-02 07:10:00 2020-01-06 07:10:00
2 2020-01-03 07:10:00 2020-01-06 07:10:00
3 2020-01-04 07:10:00 2020-01-06 07:10:00
4 2020-01-05 07:10:00 2020-01-06 07:10:00
5 2020-01-06 07:10:00 2020-01-06 07:10:00
>
  1. Pythonの基本的な日付と時刻のタイプ

    Pythonで日付と時刻を操作するために、datetimeというモジュールがあります。日付と時刻のオブジェクトには2つのタイプがあります。タイプはナイーブで認識しています。 ナイーブオブジェクトには、他の日時オブジェクトからこのオブジェクトを明確に見つけるための十分な情報がありません。このアプローチでは、協定世界時(UTC)を使用します。 認識型オブジェクトには、アルゴリズム的および政治的な時間調整に関するさまざまな情報があります。このタイプのオブジェクトは、特定の瞬間を表すために使用されます。 このモジュールを使用するには、-を使用してインポートする必要があります import da

  2. Pythonで日付と時刻の計算を行うにはどうすればよいですか?

    Pythonでtimedeltaオブジェクトを使用して、日付と時刻の計算を行うのは非常に簡単です。日付/時刻に加算または減算する場合は常に、datetime.datetime()を使用してから、datetime.timedelta()インスタンスを加算または減算します。 timedeltaオブジェクトは、期間、つまり2つの日付または時刻の差を表します。 timedeltaコンストラクターには次の関数シグネチャがあります- datetime.timedelta([days[, seconds[, microseconds[, milliseconds[, minutes[, hours[, we