如何在datetime对象中交换月份和日期?

5

我有一个pandas数据框中的列,其中包含以下日期:

年份,天数,月份,小时,分钟,秒数

2015-09-03 14:32:00

我想把这转换为:

年,月,日,小时,分钟,秒钟

2015-03-09 14:32:00
3个回答

6
你可以将lambda应用于日期并调用datetime.strftime:

您可以{{link1:apply}}一个lambda到您的日期并调用{{link2:datetime.strftime}}:

In [168]:
# create sample df
df = pd.DataFrame({'date':['2015-09-03 14:32:00']})
df['date'] = pd.to_datetime(df['date'])
df

Out[168]:
                 date
0 2015-09-03 14:32:00

In [171]:
import datetime as dt
# apply strftime
df['date'] = df['date'].apply(lambda x: dt.datetime.strftime(x, '%Y-%d-%m %H:%M:%S'))
df

Out[171]:
                  date
0  2015-03-09 14:32:00

我在我的数据框上尝试后得到了以下错误信息:AttributeError: 'DataFrame'对象没有'datetime'属性。 - Blue Moon
我需要导入datetime。 - Blue Moon
是的,我更新了我的代码示例,添加了一行 import datetime as dt - EdChum

1
您可以使用Python内置的datetime模块进行转换:
from datetime import datetime
datetime.strptime("2015-09-03 14:32:00", "%Y-%d-%m %H:%M:%S").strftime("%Y-%m-%d %H:%M:%S")

0

你可以将月份和日期进行交换,从“2019-22-02”变为“2019-02-22”。如果你只有一个日期:

pd.to_datetime("2019-22-02", yearfirst=True, dayfirst=False, format='%Y-%d-%m')

你可以将“2019-22-02”的日期替换成你的数据框的日期列。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接