【发布时间】:2015-11-10 17:11:06
【问题描述】:
我正在读取一个 Excel 文件,我想从中提取一些表格,并为每个表格放置相同的标题。
现在将第一行作为表头,而实际表头是第三行。
这是我所做的:
new_header = df.iloc[1]
df = df[3:] #choose the data
df.rename(columns = new_header)
但它不会更改标题行。任何帮助表示赞赏。
更新:
@EdChum 的回答解决了标题问题。但是我对标题的格式有疑问。标题是Month-Year 格式的日期,我想保持这种状态。但是当它读取它时,它会将格式更改为"2014-01-01 00:00:00"。我写了以下 peice 来修复它,但它只更改了第一个单元格格式,因此不能将其用作新标题。
new_header = datetime.datetime.strptime("2014-01-01 00:00:00", '%Y-%m-%d %H:%M:%S').strftime('%b-%y')
【问题讨论】:
-
这可能只是字符串显示问题,能否确认一下header dtype是str还是datetime,谢谢
-
@EdChum,在我更改格式之前,它将 dtype 显示为对象,之后它只打印“Jan-14”,这是我作为第一个参数给出的字符串,而不是整行。
-
看起来您的值是字符串,您应该可以使用
pd.to_datetime转换它们,试试df.columns = pd.todatetime(df.columns) -
@EdChum,它没有改变。
-
你必须发布你的完整数据和代码,因为我无法继续猜测可能发生的事情
标签: python numpy pandas dataframe