簡體   English   中英

pandas 數據框中 YYYYMMDDHHMMSS 的日期

[英]Date of YYYYMMDDHHMMSS in pandas data frame

我的數據框包含一個 IGN_DATE 列,其中值的格式為 20080727142700,格式為 YYYYMMDDHHMMSS。 列類型是 float64。

如何獲得時間、日期(沒有 00:00:00)、日、月的單獨列。

我試過的:

列名IGN_DATE數據IGN_DATE - df

df['IGN_DATE'] = df['IGN_DATE'].apply(str)

df['DATE'] = pd.to_datetime(df['IGN_DATE'].str.slice(start = 0, stop = 8))
df['MONTH'] = df['IGN_DATE'].str.slice(start = 4, stop = 6).astype(int)
df['DAY'] = df['IGN_DATE'].str.slice(start = 6, stop = 8).astype(int)
df['TIME'] = df['IGN_DATE'].str.slice(start = 8, stop = 13)

  1. 日期的格式為 YYYY-MM-DD 00:00:00。 我不希望 DATE 為 00:00:00。
  2. 如何獲取時間 - 類型為 string - 到 HH:MM:SS ?
  3. 有沒有更簡單的方法來做到這一點?

如果nan值不重要可以dropna然后轉換為指定格式的to_datetime然后使用dt訪問器訪問所需的值:

# Drop Rows with nan in IGN_DATE column
df = df.dropna(subset=['IGN_DATE'])
# Convert dtype to whole number then to `str`
df['IGN_DATE'] = df['IGN_DATE'].astype('int64').astype(str)
# Series of datetime values from Column
s = pd.to_datetime(df['IGN_DATE'], format='%Y%m%d%H%M%S')
# Extract out and add to DataFrame from `s`
df['DATE'] = s.dt.date
df['MONTH'] = s.dt.month
df['DAY'] = s.dt.day
df['TIME'] = s.dt.time

否則可以從IGN_DATE屏蔽notna值並僅分配這些行:

# Mask not null values
m = df['IGN_DATE'].notna()
# Convert to String
df.loc[m, 'IGN_DATE'] = df.loc[m, 'IGN_DATE'].astype('int64').astype(str)
# Series of datetime values from Column
s = pd.to_datetime(df['IGN_DATE'], format='%Y%m%d%H%M%S')
# Extract out and add to DataFrame from `s`
df.loc[m, 'DATE'] = s.dt.date
df.loc[m, 'MONTH'] = s.dt.month
df.loc[m, 'DAY'] = s.dt.day
df.loc[m, 'TIME'] = s.dt.time

示例 DF:

import numpy as np
import pandas as pd

df = pd.DataFrame({'IGN_DATE': [20080727142700, np.nan, 20151015171807]})

使用dropna示例輸出:

         IGN_DATE        DATE  MONTH  DAY      TIME
0  20080727142700  2008-07-27      7   27  14:27:00
2  20151015171807  2015-10-15     10   15  17:18:07

帶掩碼的示例輸出:

         IGN_DATE        DATE  MONTH   DAY      TIME
0  20080727142700  2008-07-27    7.0  27.0  14:27:00
1             NaN         NaN    NaN   NaN       NaN
2  20151015171807  2015-10-15   10.0  15.0  17:18:07

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM