我收到了一些像这样的Excel文件:
USA UK
plane cars plane cars
2016 2 7 1 3 # a comment after the last country
2017 3 1 8 4
国家数量不详,在最后一栏之后可以发表评论。
当我读取那样的Excel文件时......
df = pd.read_excel(
sourceFilePath,
sheet_name = 'Sheet1',
index_col = [0],
header = [0, 1]
)
...我有一个值错误:
ValueError: Length of new names must be 1, got 2
问题是我不能使用usecols param,因为在阅读我的文件之前我不知道有多少个国家。
我该如何阅读这样的文件?
答案 0 :(得分:0)
可能的Pandas无法修复您的特殊用例,但您可以使用openpyxl编写修复电子表格的程序。它有非常清晰的文档,但是这里有一个如何使用它的概述:
import openpyxl as xl
wb = xl.load_workbook("ExampleSheet.xlsx")
for sheet in wb.worksheets:
print("Sheet Title => {}".format(sheet.title))
print("Dimensions => {}".format(sheet.dimensions)) # just returns a string
print("Columns: {} <-> {}".format(sheet.min_column, sheet.max_column))
print("Rows: {} <-> {}".format(sheet.min_row, sheet.max_row))
for r in range(sheet.min_row, sheet.max_row + 1):
for c in range(sheet.min_column, sheet.max_column + 1):
if (sheet.cell(r,c).value != None):
print("Cell {}:{} has value {}".format(r,c,sheet.cell(r,c).value))
答案 1 :(得分:0)
仅使用pd.read_csv
?
加载后,您可以使用df.columns