TL;DR:
如何使用pd.to_datetime()中的format参数来解析格式化为'YYYY‘的日期?
背景:
我正在从api中提取一些数据,索引是一个日期,但被格式化为一个字符串。以下是索引的样子:
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的索引设置为等于该值。就像这样:
[ x.split(' ')[0] + x.split(' ')[1] for x in df.tail().index ]或
[ x[0:-2] for x in df.tail().index ]但这些选项中没有一种看上去很像琵琶
问题:
如何使用pd.to_datetime()中的format参数来解析格式化为'YYYY‘的日期?
发布于 2020-05-01 11:28:58
将str.rsplit与n=1一起使用,然后选择第一个列表,然后传递给to_datetime
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]顺便说一句,最直观的答案都失败了:
df.index = pd.to_datetime(df.index, format='%Y %m%d %d')
print (df)错误:将组名'd‘重新定义为第4组;是第3组
https://stackoverflow.com/questions/61541567
复制相似问题