Python pandas 连接多个对象

Python pandas concat for multipleobjects

我使用多个 sheet 从 excel 中提取数据,我使用 for 循环读取 sheet 因为我需要在每一行附加 sheet 名称。我的问题是每个 sheet 提取我的代码都会创建一个新的数据框,而不是附加在最后一个索引中,如何合并或连接成一个?

当前输出如下:

    Control No.:   Unnamed: 1      Unnamed: 2 
0       127            test             NaN
1       458            test             NaN
2       278            test             NaN
3       2453           test             NaN


    Control No.:   Unnamed: 1      Unnamed: 2 
0       573            sample        NaN
1       782            sample        NaN
2       222            sample        NaN
3       257            sample        NaN

我使用 pd.concat 和 pd.merge 忽略索引但仍然无法正常工作,而且 excel 有超过 7 个 sheet。

我是从这段代码开始的:

xls = pd.ExcelFile('file_loc')
sheets = [sheet for sheet in xls.sheet_names]
for sheet_name in sheets:
      df = pd.read_excel('file_loc', sheet_name=sheet_name)
      df1 = pd.concat([df], ignore_index=True, sort=False)
      print(df1)

我需要的输出是这样的:

    Control No.:   Unnamed: 1      Unnamed: 2 
0       127            test             NaN
1       458            test             NaN
2       278            test             NaN
3       2453           test             NaN
4       573            sample        NaN
5       782            sample        NaN
6       222            sample        NaN
7       257            sample        NaN

尝试使用以下代码。

  • 我们在每次迭代中创建用于存储数据帧的空列表。
  • 在循环中,我们从 excel 文件中读取 df 并将数据帧附加到列表中
  • 循环后,我们连接列表中的所有数据帧。
xls = pd.ExcelFile('file_loc')
sheets = [sheet for sheet in xls.sheet_names]
list_df = []
for sheet_name in sheets:
      df = pd.read_excel('file_loc', sheet_name=sheet_name)
      list_df += [df]

df = pd.concat(df).reset_index(drop=True)