将字符串日期转换为日期并在数据框中删除时间

问题描述 投票:0回答:3

我正在尝试将字符串日期和时间(例如:“ 6/30/2015 0:00”)转换为以下格式的日期:%Y /%m /%d。我正在尝试对dataframe列中的所有值执行此操作。我几乎拥有它,但似乎无法摆脱时间问题。我还需要将此方法应用于可能具有null / blank值的另一列。这是我尝试过的方法,有关如何使其正常工作的任何建议?

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

[ValueError:仍保留未转换的数据:0:00

python pandas datetime date-conversion
3个回答
1
投票

尝试:

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

假设您的日期一致,只需使用split截断时间段即可。希望有帮助。


1
投票

如果您所有的日期时间均为'%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

0
投票

您可以在将字符串日期转换为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列来与字符串格式的日期进行比较,理想情况下,您只是将日期分配给相同的变量

© www.soinside.com 2019 - 2024. All rights reserved.