当前位置: 首页 > 知识库问答 >
问题:

如何转换日期只得到数字年[重复]

郜光明
2023-03-14

我有以下日期表。

如何将这些字符串日期转换为仅显示数字年份?

我需要在Python中为Pandas数据帧执行此操作。

我知道一个选择是分割字符串,但是有没有更有效的方法?

共有2个答案

陈文景
2023-03-14

假设此数据列位于名为df的DataFrame中,那么,

df['datum'] = pandas.to_datetime(df['datum'], format='%a %b %d, %Y %H:%M UTC')

将字符串日期转换为datetime对象。

现在,如果只需要年份,可以从表中获取任何对象并访问其year属性。例如,df['datum'][0]。年份

如果您想制作一个仅包含年份的专栏:

df['年']=df['data'].dt.year

酆君墨
2023-03-14
  • 这个问题是重复的,但这个答案已经留下来澄清一个解决方案
  • 使用。dt访问器,用于在将列转换为datetime64[ns]数据类型后提取年份
  • 示例数据都是'UTC',因此pd。to_datetime(df.datum,utc=True)应在不使用格式的情况下工作。
    • 需要注意的是,在不指定格式的情况下转换列需要更长的时间,因为必须推断日期格式
    • 如果时区不同,请尝试指定格式
    • 选择正确的格式代码以设置中的格式。到_datetime()
    import pandas as pd
    
    # test data
    data = {'datum': ['Fri Aug 07, 2020 05:12 UTC', 'Thu Aug 06, 2020 04:01 UTC', 'Tue Aug 04, 2020 23:57 UTC', 'Thu Jul 30, 2020 21:25 UTC', 'Thu Jul 30, 2020 11:50 UTC', 'Sat Jul 25, 2020 03:13 UTC', 'Thu Jul 23, 2020 14:26 UTC', 'Thu Jul 23, 2020 04:41 UTC', 'Mon Jul 20, 2020 21:30 UTC', 'Sun Jul 19, 2020 21:58 UTC', 'Wed Jul 15, 2020 13:46 UTC', 'Fri Jul 10, 2020 04:17 UTC', 'Thu Jul 09, 2020 12:11 UTC', 'Mon Jul 06, 2020 01:00 UTC', 'Sat Jul 04, 2020 23:44 UTC', 'Sat Jul 04, 2020 21:19 UTC', 'Fri Jul 03, 2020 03:10 UTC', 'Tue Jun 30, 2020 20:10 UTC', 'Tue Jun 23, 2020 01:43 UTC']}
    df = pd.DataFrame(data)
    
    # if you have varying time zones, try specifying the format
    df.datum = pd.to_datetime(df.datum, format='%a %b %d, %Y %H:%M %Z')
    
    # if you have only utc
    df.datum = pd.to_datetime(df.datum, utc=True)
    df['Year'] = df.datum.dt.year
    
                        datum  Year
    2020-08-07 05:12:00+00:00  2020
    2020-08-06 04:01:00+00:00  2020
    2020-08-04 23:57:00+00:00  2020
    2020-07-30 21:25:00+00:00  2020
    2020-07-30 11:50:00+00:00  2020
    2020-07-25 03:13:00+00:00  2020
    2020-07-23 14:26:00+00:00  2020
    2020-07-23 04:41:00+00:00  2020
    2020-07-20 21:30:00+00:00  2020
    2020-07-19 21:58:00+00:00  2020
    2020-07-15 13:46:00+00:00  2020
    2020-07-10 04:17:00+00:00  2020
    2020-07-09 12:11:00+00:00  2020
    2020-07-06 01:00:00+00:00  2020
    2020-07-04 23:44:00+00:00  2020
    2020-07-04 21:19:00+00:00  2020
    2020-07-03 03:10:00+00:00  2020
    2020-06-30 20:10:00+00:00  2020
    2020-06-23 01:43:00+00:00  2020
    

 类似资料:
  • 有没有办法只从JavaScript中的API中获取日期字符串的前四个字符? 我正在使用电影数据库,它允许我获取电影的确切上映日期。例如,我为“海底总动员”获取以下数据对象: 我在Movies.js组件中添加了以下代码< code > 但是有没有办法只提取前四个字符(2003)并只返回该字符?或者更好的是,有没有办法只提取发行年份?

  • 我有以下代码段来更改日期格式 用相同的日期格式将字符串再次转换回日期的最佳方法是什么

  • 我正试图从R中的日期对象中获取周数和年份。 我知道有很多关于这一点的问题,但没有发现任何关于这一特定的年初/年底问题。 谢了!

  • 所以我的数据库中有一个表,date声明为date。现在我正在用java编码,我需要用户输入日期并将其存储在我的数据库中。它是如何工作的?我的意思是把日期转换成什么?非常感谢。 现在这是我的代码

  • 问题内容: 我正在尝试将字符串转换为日期 但在我看来,它有一个。的。这是为什么?我想生成一个日期 问题答案: 日期字符串- 符合- d-每月的某天 M-一年中的月份 y-年 …

  • 如果在程序中有人给我天数(ab=“days”),我需要将变量“days”设置为相同的数字(“val”中的值),如果有人给我月份(ab=“months”),那么我需要将其转换为天(val中的值),如果有人给我年(ab=“years”),那么我需要将其转换为天(val中的值)。ie如果用户在变量“ab”中指定了值的类型(即是月、年或日期)和变量“val”中的天数(天/月/年),我需要在变量“天”中获得