簡體   English   中英

將字符串日期轉換為日期並刪除數據框中的時間

[英]Converting string date to a date and dropping the time in a dataframe

我正在嘗試將字符串日期和時間(例如:“6/30/2015 0:00”)轉換為這種格式的日期:%Y/%m/%d。 我正在嘗試對數據框列中的所有值執行此操作。 我幾乎擁有它,但似乎無法擺脫時間部分。 我還需要將此方法應用於可能具有空值/空白值的另一列。 這是我嘗試過的,有關如何使其工作的任何建議?

cnms_df['STATUS_DATE'] = pd.to_datetime(cnms_df['STATUS_DATE'], format="%Y/%m/%d")

ValueError:未轉換的數據仍然存在:0:00

***示例數據(不包括所有字段;長度超過 30 個) 在此處輸入圖片說明

以下是STATUS_DATE前 5 個值的示例系列:

0    6/30/2015 0:00
1    6/24/2015 0:00
2    6/24/2015 0:00
3    6/24/2015 0:00
4    6/24/2015 0:00
Name: STATUS_DATE, dtype: object

嘗試:

cnms_df['STATUS_DATE'] = pd.to_datetime(cnms_df['STATUS_DATE'][:cnms_df['STATUS_DATE'].index(' ')[0]], format="%Y/%m/%d")

假設您的日期一致,只需使用split截斷時間段即可。 希望有幫助。

如果您所有的日期時間都是'%d/%m/%Y %H:%M那么這將起作用

df = pd.DataFrame({'date' : ['6/30/2015 0:00', '6/30/2015 15:35']})


print(df)

              date
0   6/30/2015 0:00
1  6/30/2015 15:35

df["date"] = pd.to_datetime(df["date"], format="%m/%d/%Y %H:%M").dt.normalize()

print(df)

        date
0 2015-06-30
1 2015-06-30

print(df.dtypes)

date    datetime64[ns]
dtype: object

您可以在將字符串日期轉換為 datetime64[ns] 之前丟棄時間部分。

df = pd.DataFrame({'date' : ['6/30/2015 0:00']})
df['new_date'] = pd.to_datetime(df['date'].str.split().str[0], format = '%m/%d/%Y')
print(df)


date    new_date
0   6/30/2015 0:00  2015-06-30

df.dtypes

date                object
new_date    datetime64[ns]

注意:我創建了列 new_date 來與字符串格式日期進行比較,理想情況下,您只需將日期分配給相同的變量

暫無
暫無

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

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