在python中将几个csv文件读入数据框

时间:2017-09-30 06:41:24

标签: python pandas csv

我有一个包含.exp文件的文件夹。它们基本上是.csv文件,但扩展名为.exp(只是从仪器导出的文件格式)。我知道因为将.exp更改为.csv仍然允许在Excel中将它们作为csv文件打开。示例:https://uowmailedu-my.sharepoint.com/personal/tonyd_uow_edu_au/Documents/LAB/MC-ICPMS%20solution/Dump%20data%20here?csf=1

在Python中,我想将每个文件中的数据读入数据框(每个文件一个)。我已经尝试了以下代码,但它使列表dfs包含所有文件,并且: (i)我不知道如何访问列表dfs的内容并将其转换为多个数据框 (ii)看起来原始.exp文件中的列丢失了。

import os
# change directory
os.chdir('..\LAB\MC-ICPMS solution\Dump data here')
path = os.getcwd()

import glob
import pandas as pd

# get data file names
filenames = glob.glob(path + "/*.csv")

dfs = []
for filename in filenames:
    dfs.append(pd.read_csv(filename))

你们有什么想法我如何将这些文件读入数据框,所以我可以轻松访问内容? 我发现这篇文章:Storing csv file's contents into data Frames [Python Pandas]但在我的案例中没有太大帮助。 感谢

1 个答案:

答案 0 :(得分:0)

我建议您切换到使用文件夹的绝对路径。在组合文件部分时使用os.path.join()也更安全(优于字符串连接)。

为了使事情更容易理解,我建议您创建一个包含文件名和数据框的元组列表,而不仅仅是创建数据框列表,这样您将知道哪个是哪个。

在您的代码中,您当前正在搜索csv个文件而不是exp个文件。

以下内容创建数据框列表,每个条目还存储相应的文件名。在最后,它循环遍历所有条目并显示数据。

最后,它会向您展示如何仅显示第一个条目。

import pandas as pd
import glob
import os

# change directory
os.chdir('..\LAB\MC-ICPMS solution\Dump data here')
path = os.getcwd()

# get data file names
dfs = []

for filename in glob.glob(os.path.join(path, "*.exp")):
    dfs.append((filename, pd.read_csv(filename)))

print "Found {} exp files".format(len(dfs))

# display each of your dataframes
for filename, df in dfs:
    print filename
    print df

# To display just the first entry:
print "Filename:", df[0][0]
print df[0][1]