【发布时间】:2025-12-06 13:10:02
【问题描述】:
我正在阅读 Excel 工作表。标题是月-年格式的日期,我想保持这种方式。但是当它读取它时,它会将格式更改为“2014-01-01 00:00:00”。我写了以下 peice 来修复它,但不起作用。
import pandas as pd
import numpy as np
import datetime
from datetime import date
import time
file_loc = "path.xlsx"
df = pd.read_excel(file_loc, index_col=None, na_values=['NA'], parse_cols = 37)
df.columns=pd.to_datetime(df.columns, format='%b-%y')
什么都没做。在另一次尝试中,我做了以下事情:
df.columns = datetime.datetime.strptime(df.columns, '%Y-%m-%d %H:%M:%S').strftime('%b-%y')
返回must be str, not datetime.datetime 错误。我不知道如何让它逐个单元格地读取字符串!
这是一个示例数据:
NaT 11/14/2015 00:00:00 12/15/2015 00:00:00 1/15/2016 00:00:00
A 5 1 6
B 6 3 3
我的主要问题是它无法将其识别为标题,例如,df['11/14/2015 00:00:00'] 会返回 keyError。
感谢任何帮助。
更新:这是一张照片来说明我不断得到的东西!方框 6 是 apply 的实现,方框 7 是我的数据的样子。
【问题讨论】:
-
@EdChum,我在这里发布了日期格式的问题。谢谢。
-
我认为是因为您的剥离不正确:
11/14/2015 00:00:00应该是'%Y/%m/%d %H:%M:%S',但不是在月份和日期之间使用'-'符号 -
@Anton Protopopov,我用
/尝试过,但错误仍然显示must be str, not Index。
标签: python datetime pandas type-conversion datetime-format