我有一个包含.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]但在我的案例中没有太大帮助。 感谢
答案 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]