【发布时间】:2021-04-09 02:53:18
【问题描述】:
我有一个奇怪的问题。在我的文件夹中,我有来自实验室 CO2 传感器的带有 CO2 值的 .dat 数据。来自实验 4、5、6、7、8 的数据,名称为 CO2_4.dat、CO2_5.dat、CO2_6.dat、CO2_7.dat、CO2_8.dat 我知道如何手动阅读它们。例如,读取 CO2_4 可以:
dfCO2_4_manual = pd.read_csv(r'C:\data\CO2\co2_4.dat', sep=";", encoding= 'unicode_escape', header = 0, skiprows=[0], usecols=[0,1,2,4], names =["ts","t","co2_4", "p"])
display(dfCO2_4_manual)
这给了我一个具有正确值的数据框:
每分钟一个值
但是,如果我想遍历我的文件夹并使用这种技术(“适用于实验室的其他 CSV 文件”)读取它们,该技术可以保护字典中的数据帧:
exp_list =[4,5,6,7,8] # list with number of each experiment
path_CO2 = r'C:\data\CO2'
CO2_files = glob.glob(os.path.join(path_CO2, "*.dat"))
CO2_dict = {}
for f, i in zip(offline_files, exp_list):
CO2_dict["CO2_{0}".format(i)] = pd.read_csv(f, sep=";", encoding= 'unicode_escape', header = 0, skiprows=[0], usecols=[0,1,2,4], names =["ts","t","CO2_{0}".format(i), "p"])
display(CO2_dict["CO2_4"])
给了我一个包含许多被跳过且完全错误的值的数据框。
如果我用文本编辑器打开 CO2_4.dat 数据,它看起来像这样:
有人知道发生了什么吗?
【问题讨论】:
标签: python pandas csv dictionary for-loop