errno 13权限被拒绝:加载csv文件并绘制高斯拟合时

qojgxg4l  于 2021-09-08  发布在  Java
关注(0)|答案(1)|浏览(388)

将csv文件的内容存储到数组中时出错。我的csv文件由两列x值和y值组成。我使用for循环遍历csv文件的文件夹,获取它们的文件名,并将列的内容存储在数组中。我的第一列需要存储在扩展数据[]中,第二列需要存储在ydata[]中。我能够打印文件夹中所有csv文件的文件名。但是,我很难找到将文件内容添加到数组中的逻辑。
我越来越
错误3:权限被拒绝错误。
我还认为我的while循环中存在一个问题。
一旦我得到了这两个数组,我想根据ydata绘制扩展数据的值,并将高斯分布拟合到我的数据中。

  1. import csv
  2. import pandas as pd
  3. import numpy as np
  4. from matplotlib import pyplot as plt
  5. from scipy.optimize import curve_fit
  6. from scipy import asarray as ar,exp
  7. import lmfit
  8. from glob import glob
  9. import os
  10. from lmfit import Parameters, minimize, report_fit, Model
  11. import glob
  12. path=r'E:\Users\ConfocalUser\Documents\GitHub\qudi'
  13. location=glob.glob(path+'/*.csv')
  14. ### check if the path is correct
  15. xData=[]
  16. yData=[]
  17. While location=True:
  18. with open(path,"r") as f_in:
  19. reader=csv.reader(f_in)
  20. next(reader)
  21. for line in reader:
  22. try:
  23. float_1,float_2=float(line[0]),float(line[1])
  24. xData.append(float_1)
  25. yData.append(float_2)
  26. except ValueError:
  27. continue
41ik7eoe

41ik7eoe1#

最好使用 pandas.read_csv 作用(https://pandas.pydata.org/pandas-docs/stable/user_guide/io.html#csv-文本文件)将csv文件直接放入数据框中,您可以使用该数据框打印数据(https://pandas.pydata.org/pandas-docs/stable/getting_started/intro_tutorials/04_plotting.html). 大致如下:

  1. dataframes = []
  2. for filepath in glob.iglob(path + "/*.csv"):
  3. dataframes.append(pd.read_csv(filepath))
  4. df = pd.concat(dataframes)
  5. # Let's say your csv looks like this:
  6. # "a","b"
  7. # 1,2
  8. # 2,3
  9. # 3,4
  10. # And you want your x data to be the "a" column and y to be "b"
  11. df.plot.scatter(x="a", y="b")
展开查看全部

相关问题