我正在研究以下教程,其中excel文件由3个具有相同数据结构的表格组成。当使用pandas.concat()将所有工作表放在一起时,我观察到创建的数据框中的行数是不同的,并且比最后一个索引大得多。
https://www.dataquest.io/blog/excel-and-pandas/
我使用pandas.shape显示行数,并使用pandas.tail()从末尾打印5行。 这是代码:
import pandas as pd
excel_file = "movies.xls"
xlsx = pd.ExcelFile(excel_file)
movies_sheets = []
for sheet in xlsx.sheet_names:
movies_sheets.append(xlsx.parse(sheet))
[enter image description here][1]movies = pd.concat(movies_sheets)
print(movies.shape)
print(movies.tail())
以下是输出:
答案 0 :(得分:1)
因为要使用:
movies = pd.concat(movies_sheets)
它不创建默认索引,只为每个工作表名称合并所有3个索引值。
为防止出现这种情况,请将ignore_index=True
参数添加到concat
:
movies = pd.concat(movies_sheets, ignore_index=True)
或创建默认索引:
movies = pd.concat(movies_sheets).reset_index(drop=True)