我有很多带有多个工作表的excel文件,其中第一行数据不是标题而是数据。如何在不指定标题行的情况下解析每个工作表,并且默认值不为0.将第一行作为我的标题是一种痛苦。
如果不这样,将列索引插入第一行数据的最佳方法是什么?
我的代码很简单:
import pandas as pd
path_list #list of paths to .xls files
data_sheets = [] #container for parsed sheets
for file_ in path_list:
excel_file_obj = pd.ExcelFile(file_)
for sheet in excel_file_obj:
data_sheet = excel_file_obj.parse(sheet)
data_sheets.append(data_sheet)
我不能为我的生活找出如何将列索引放入第一行索引。我基本上想要一个df.reset_index(False)
类型的解决方案,但是对于列。这样的事情存在吗?
对于每个数据表,似乎都有一种非常强硬的方法:
first_row = data_sheet.columns
generic_cols = ['col' + str(x) for x in xrange(len(data_sheet.columns))]
data_sheet.index = [x for x in xrange(1, len(data_sheet) + 1)]
data_sheet.columns = generic_cols
for_concat = pd.DataFrame({col : val for col, val in zip(generic_cols, first_row)}, index = [0,])
new_sheet =pd.concat([for_concat, data_sheet])
必须有更好的方法。所有帮助表示赞赏...