【问题标题】:How to split a date into day, month and year如何将日期拆分为日、月和年
【发布时间】:2020-04-25 23:26:44
【问题描述】:

我有一个这种格式的日期 - 31­Jan­2020,我如何获得日期、月份和年份 - 31、1 月和 2020 年。

我正在遍历一个数据框,日期列的名称是date。这就是我正在做的事情

for index,row in data.iterrows():
    date = row['date']
    print(date)

【问题讨论】:

  • 请发布问题的详细信息,例如,您想用 Pandas 或 Python 格式化它吗?另外,请分享您的尝试。
  • @MayankPorwal 我添加了更多细节。
  • 请分享您的示例数据框和基于它的预期输出。
  • 我刚刚向你展示了返回的日期

标签: python-3.x pandas


【解决方案1】:

下面的代码应该可以在 Python 中运行:

import datetime as dt
import pandas as pd

date_str = '31Jan2020'

a_date = dt.datetime.strptime(date_str, '%d%b%Y').date()

print(a_date.year)
print(a_date.month)
print(a_date.day)

data_df = pd.DataFrame([['31Jan2020'], ['1Jan2020']], columns=['date_str'])

data_df['year'] = data_df['date_str'].map(lambda x: dt.datetime.strptime(x, '%d%b%Y').date().year)
data_df['month'] = data_df['date_str'].map(lambda x: dt.datetime.strptime(x, '%d%b%Y').date().month)
data_df['day'] = data_df['date_str'].map(lambda x: dt.datetime.strptime(x, '%d%b%Y').date().day)

print(data_df)

【讨论】:

  • 你能检查我的问题吗?我添加了更多细节。也许您可以编辑您的答案,因为当前答案对我不起作用。谢谢
  • 我尝试了第一个选项,得到 ValueError: time data '31\xadJan\xad2020' does not match format '%d%b%Y'
  • 试试:dt.datetime.strptime(date_str, '%d\xad%b\xad%Y').date()
猜你喜欢
  • 2011-09-26
  • 1970-01-01
  • 1970-01-01
  • 2021-12-17
  • 1970-01-01
  • 2016-02-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多