当前位置: 首页 > 知识库问答 >
问题:

将多个excel文件导入python pandas并连接到一个数据帧中

廖鸿达
2023-03-14

我想从一个目录中读取几个excel文件到pandas中,并将它们连接到一个大的数据帧中。不过我还没弄明白。我需要一些关于for循环和构建级联数据帧的帮助:

import sys
import csv
import glob
import pandas as pd

# get data file names
path =r'C:\DRO\DCL_rawdata_files\excelfiles'
filenames = glob.glob(path + "/*.xlsx")

dfs = []

for df in dfs: 
    xl_file = pd.ExcelFile(filenames)
    df=xl_file.parse('Sheet1')
    dfs.concat(df, ignore_index=True)

共有1个答案

汪成仁
2023-03-14

正如注释中提到的,您正在犯的一个错误是在一个空列表上循环。

下面是我如何做的,使用一个有5个相同的Excel文件的例子,这些文件被一个接一个地追加。

(1)进口:

import os
import pandas as pd
path = os.getcwd()
files = os.listdir(path)
files
['.DS_Store',
 '.ipynb_checkpoints',
 '.localized',
 'Screen Shot 2013-12-28 at 7.15.45 PM.png',
 'test1 2.xls',
 'test1 3.xls',
 'test1 4.xls',
 'test1 5.xls',
 'test1.xls',
 'Untitled0.ipynb',
 'Werewolf Modelling',
 '~$Random Numbers.xlsx']
files_xls = [f for f in files if f[-3:] == 'xls']
files_xls
['test1 2.xls', 'test1 3.xls', 'test1 4.xls', 'test1 5.xls', 'test1.xls']
df = pd.DataFrame()
for f in files_xls:
    data = pd.read_excel(f, 'Sheet1')
    df = df.append(data)
df

输出:

  Result  Sample
0      a       1
1      b       2
2      c       3
3      d       4
4      e       5
5      f       6
6      g       7
7      h       8
8      i       9
9      j      10
0      a       1
1      b       2
2      c       3
3      d       4
4      e       5
5      f       6
6      g       7
7      h       8
8      i       9
9      j      10
0      a       1
1      b       2
2      c       3
3      d       4
4      e       5
5      f       6
6      g       7
7      h       8
8      i       9
9      j      10
0      a       1
1      b       2
2      c       3
3      d       4
4      e       5
5      f       6
6      g       7
7      h       8
8      i       9
9      j      10
0      a       1
1      b       2
2      c       3
3      d       4
4      e       5
5      f       6
6      g       7
7      h       8
8      i       9
9      j      10
 类似资料:
  • 我想从一个目录中读取几个csv文件到pandas中,并将它们连接到一个大的数据帧中。不过我还没弄明白。以下是我目前掌握的情况: 我想我需要在for循环中得到一些帮助???

  • 我有多个csv文件(每个文件包含N行(例如,1000行)和43列)。 我想把文件夹中的几个csv文件读入pandas,并将它们合并到一个数据帧中。 不过我还没能弄明白。 问题是,数据帧的最终输出(即,)将所有列(即43列)合并到代码的一列(见附图)屏幕截图中 选定行和列的示例(文件一) 选择的行和列(文件二)Client_IDClient_NamePointer_of_Bins日期权重C00000

  • 我遇到问题< code >没有要连接的对象。我不能进口。csv文件,将它们连接成一个数据帧。我在用熊猫。旧答案没有帮助我,所以请不要标记为重复。 文件夹结构就是这样 < li >不起作用

  • 我想阅读刚刚过去7天创建的csv文件从一个目录到熊猫,并将它们连接到一个大数据帧。不过我还没弄明白。以下是我到目前为止的情况: 编辑:我试图按csv文件的创建日期过滤,而不是按csv中的任何列过滤。

  • 目前,我只能阅读一个excel文档,并用我得到的代码编写相同的文档。现在我想读取多个excel文档并将数据写入其中。现在我得到了一个清晰的代码,这样做到一个文档,但这不是我想要的。我理解我目前得到的代码的结构,所以我更喜欢继续使用它。如何使用函数和函数来实现这一点? 这是我到目前为止所拥有的: 不是很好的编码...但它有效...