【发布时间】:2019-02-05 04:14:50
【问题描述】:
我一直在尝试从多个列标签为日期的 Excel 文件中导入数据。 excel文件头看起来有点像这样
姓名 2018-08-01 2018-08-02 金额
将其导入数据框后,我得到了列标签-
名称 2018-08-01 00:00:00 2018-08-02 00:00:00 金额
所以我想从标题中删除小时。由于日期在 excel 文件中自动更新,因此我无法使用 ' 替换标签 df['2018-08-01 00:00:00']` 我尝试使用以下代码重命名列
df1.columns[3] = pd.to_datetime(df1.columns[3], format='%Y-%m-%d')
但是这会产生以下错误:
TypeError: Index does not support mutable operations.
我也试过
df1.rename(df1.columns[3][lambda t: t.strftime('%Y-%M-%d')])
这给出了以下错误
TypeError: 'datetime.datetime' object is not subscriptable
我对 Python 和数据框非常陌生,我仍处于非常基础的阶段。我该如何完成这项工作?
已解决
由于我已经知道列索引,我将它们从 datetime object 转换为
string然后将它们切片。我尝试了迭代,但它不起作用,所以这是我能做到的唯一方法。
Edate=str(df1.columns[1])
Edatep=slice(0,10,1)
Gdate=str(df1.columns[2])
Gdatep=slice(0,10,1)
df1.columns=['Name',Edate[Edatep],Gdate[Gdatep],'Amount']
【问题讨论】:
标签: python pandas datetime dataframe label