我的dataframe有一个DOB列(示例格式1/1/2016),默认情况下转换为Pandas dtype“对象”。
将此转换为日期格式df['DOB'] = pd.to_datetime(df['DOB']),日期转换为:2016-01-26,其dtype为:datetime64[ns]。
现在我想把这个日期格式转换成01/26/2016或任何其他通用日期格式。我该怎么做?
(无论我尝试哪种方法,它总是以2016-01-26的格式显示日期。)
我的dataframe有一个DOB列(示例格式1/1/2016),默认情况下转换为Pandas dtype“对象”。
将此转换为日期格式df['DOB'] = pd.to_datetime(df['DOB']),日期转换为:2016-01-26,其dtype为:datetime64[ns]。
现在我想把这个日期格式转换成01/26/2016或任何其他通用日期格式。我该怎么做?
(无论我尝试哪种方法,它总是以2016-01-26的格式显示日期。)
当前回答
下面的代码更改为'datetime'类型,并在给定的格式字符串中格式化。
df['DOB'] = pd.to_datetime(df['DOB'].dt.strftime('%m/%d/%Y'))
其他回答
下面的代码为我工作,而不是前面的一个:
df['DOB']=pd.to_datetime(df['DOB'].astype(str), format='%m/%d/%Y')
下面是对我有用的代码。我们需要注意格式。下面的链接对于了解您现有的格式和更改为所需的格式(遵循strftime()和strptime()行为中的strftime()和strptime()格式代码)绝对有用:
data['date_new_format'] = pd.to_datetime(data['date_to_be_changed'] , format='%b-%y')
你可以试试这个。它会将日期格式转换为DD-MM-YYYY:
df['DOB'] = pd.to_datetime(df['DOB'], dayfirst = True)
下面的代码更改为'datetime'类型,并在给定的格式字符串中格式化。
df['DOB'] = pd.to_datetime(df['DOB'].dt.strftime('%m/%d/%Y'))
你可以用dt。如果你需要将datetime转换为其他格式,则使用Strftime(但注意,列的dtype将为object (string)):
import pandas as pd
df = pd.DataFrame({'DOB': {0: '26/1/2016', 1: '26/1/2016'}})
print (df)
DOB
0 26/1/2016
1 26/1/2016
df['DOB'] = pd.to_datetime(df.DOB)
print (df)
DOB
0 2016-01-26
1 2016-01-26
df['DOB1'] = df['DOB'].dt.strftime('%m/%d/%Y')
print (df)
DOB DOB1
0 2016-01-26 01/26/2016
1 2016-01-26 01/26/2016