【问题标题】:python convert a column's datetime formatpython转换列的日期时间格式
【发布时间】:2021-02-18 01:41:13
【问题描述】:

下面是我的df

df = pd.DataFrame({
                   'Year': [2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, 2030, 2031,2032, 2033, 2034, 2035, 2036, 2037, 2038, 2039, 2040],
                    'Count' : [1, 9, 8, 1, 6, 5, 6, 2, 4, 1, 1, 1, 6, 1, 4, 3, 8, 8, 2, 4]
})

我想将所有年份转换为当年的 3 月 1 日,即 2021 将替换为 2021 年 1 月 3 日,2022 年将替换为 2022 年 1 月 3 日,依此类推。最快的方法是什么?

【问题讨论】:

  • '1/3/' + df.Year.astype(str)?

标签: python pandas datetime


【解决方案1】:

因为默认日期格式是YYYY-MM-DD 添加-03-01 并转换为日期时间:

df['date'] = pd.to_datetime(df.Year.astype(str) + '-03-01')
print (df)

    Year  Count       date
0   2021      1 2021-03-01
1   2022      9 2022-03-01
2   2023      8 2023-03-01
3   2024      1 2024-03-01
4   2025      6 2025-03-01
5   2026      5 2026-03-01
6   2027      6 2027-03-01
7   2028      2 2028-03-01
8   2029      4 2029-03-01
9   2030      1 2030-03-01
10  2031      1 2031-03-01
11  2032      1 2032-03-01
12  2033      6 2033-03-01
13  2034      1 2034-03-01
14  2035      4 2035-03-01
15  2036      3 2036-03-01
16  2037      8 2037-03-01
17  2038      8 2038-03-01
18  2039      2 2039-03-01
19  2040      4 2040-03-01

【讨论】:

  • @yatu - yop,我使用默认的第一个月格式,所以03-01也可以
  • 是的,刚刚测试并认为情况正好相反。默认工作:)
猜你喜欢
  • 2012-03-27
  • 1970-01-01
  • 2021-10-05
  • 2011-01-23
  • 2011-08-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多