首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对格式古怪的日期的熊猫to_datetime解析

问对格式古怪的日期的熊猫to_datetime解析
EN

Stack Overflow用户
提问于 2020-05-01 11:25:22
回答 1查看 198关注 0票数 1

TL;DR:

如何使用pd.to_datetime()中的format参数来解析格式化为'YYYY‘的日期?

背景:

我正在从api中提取一些数据,索引是一个日期,但被格式化为一个字符串。以下是索引的样子:

代码语言:javascript
复制
Index(['2020 0422 22', '2020 0423 23', '2020 0424 24', '2020 0427 27',
       '2020 0428 28'],
      dtype='object')

选项1:

通常情况下,我会做一些类似df.index = pd.to_datetime(df.index)的事情,这通常会像一种魅力。如果这不起作用,那么我将使用格式参数来像这个pd.to_datetime(format='%y/%m/%d)那样进行解析,但是,考虑到这一天包含了两次,我不知道如何使用这个参数。

备选方案2:

我还可以使用字符串理解来创建一个新列表,将其转换为datetime,然后将df的索引设置为等于该值。就像这样:

代码语言:javascript
复制
[ x.split(' ')[0] + x.split(' ')[1] for x in df.tail().index ]

或

代码语言:javascript
复制
[ x[0:-2] for x in df.tail().index ]

但这些选项中没有一种看上去很像琵琶

问题:

如何使用pd.to_datetime()中的format参数来解析格式化为'YYYY‘的日期?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-01 11:28:58

将str.rsplit与n=1一起使用,然后选择第一个列表,然后传递给to_datetime

代码语言:javascript
复制
idx = pd.Index(['2020 0422 22', '2020 0423 23', '2020 0424 24', '2020 0427 27',
       '2020 0428 28'])
df = pd.DataFrame(index = idx)

df.index = pd.to_datetime(df.index.str.rsplit(n=1).str[0], format='%Y %m%d')
print (df)

Empty DataFrame
Columns: []
Index: [2020-04-22 00:00:00, 2020-04-23 00:00:00, 
        2020-04-24 00:00:00, 2020-04-27 00:00:00, 
        2020-04-28 00:00:00]

顺便说一句,最直观的答案都失败了:

代码语言:javascript
复制
df.index = pd.to_datetime(df.index, format='%Y %m%d %d')
print (df)

错误:将组名'd‘重新定义为第4组;是第3组

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61541567

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档