我有一个excel文件foo.xlsx
,大约有40张纸sh1
,sh2
等。每张纸的格式如下:
area cnt name\nparty1 name\nparty2
blah 9 5 5
word 3 7 5
在每个工作表中,我想用name\nparty
格式重命名vars,使其只使用party
作为标签。示例输出:
area cnt party1 party2 sheet
bacon 9 5 5 sh1
spam 3 7 5 sh1
eggs 2 18 4 sh2
我在文件中读到:
book = pd.ExcelFile(path)
然后想知道我是否需要:
for f in filelist:
df = pd.ExcelFile.parse(book,sheetname=??)
'more operations here'
# only change column names 2 and 3
i, col in enumerate(df):
if i>=2 and i<=3:
new_col_name = col.split("\n")[-1]
df[new_col_name] =
或者类似的?
更新日期:2019-09-09:
对v0.25.1使用
sheet_name
,而不是sheetname
如果设置关键字参数
sheetname=None
,read_excel
的pandas
方法允许您一次读取所有工作表。这将返回字典-键是工作表名称,值是作为数据帧的工作表。使用此功能,我们可以简单地遍历字典并:
rename
方法重命名列-通过使用lambda
,只要在有新行时拆分每个列名,就可以获得列表的最后一个条目。如果没有新行,则列名不变。完成后,我们重置索引,一切都应该正常。注意:如果一个工作表上有参与方,而其他工作表上没有,则此操作仍然有效,但将用
NaN
填充每个工作表中缺少的列。印刷品:
相关问题 更多 >
编程相关推荐