Errno 13 权限被拒绝:加载 csv 文件和绘制高斯拟合时
Errno 13 Permission denied: while loading csv files and plotting a gaussian fit
我在将 csv 文件的内容存储到数组中时遇到错误。我的 csv 文件由两列 x 值和 y 值组成。我正在使用 for 循环遍历 csv 文件的文件夹,获取它们的文件名并将列的内容存储在数组中。我的第一列需要存储在 xData[] 中,第二列需要存储在 yData[] 中。
我能够打印文件夹中所有 csv 文件的文件名。
但是,我正在努力寻找将文件内容添加到数组中的逻辑。
我得到
Errno 3: Permission denied error.
我也认为我的 while 循环有问题。
获得 2 个数组后,我想根据 yData 绘制 xData 的值并将高斯拟合到我的数据中。
import csv
import pandas as pd
import numpy as np
from matplotlib import pyplot as plt
from scipy.optimize import curve_fit
from scipy import asarray as ar,exp
import lmfit
from glob import glob
import os
from lmfit import Parameters, minimize, report_fit, Model
import glob
path=r'E:\Users\ConfocalUser\Documents\GitHub\qudi'
location=glob.glob(path+'/*.csv')
###check if the path is correct
xData=[]
yData=[]
While location=True:
with open(path,"r") as f_in:
reader=csv.reader(f_in)
next(reader)
for line in reader:
try:
float_1,float_2=float(line[0]),float(line[1])
xData.append(float_1)
yData.append(float_2)
except ValueError:
continue
最好使用pandas.read_csv
函数(https://pandas.pydata.org/pandas-docs/stable/user_guide/io.html#csv-text-files) to get your csv file directly into a dataframe that you can use to plot the data (https://pandas.pydata.org/pandas-docs/stable/getting_started/intro_tutorials/04_plotting.html)。类似这样的事情:
dataframes = []
for filepath in glob.iglob(path + "/*.csv"):
dataframes.append(pd.read_csv(filepath))
df = pd.concat(dataframes)
# Let's say your csv looks like this:
# "a","b"
# 1,2
# 2,3
# 3,4
# And you want your x data to be the "a" column and y to be "b"
df.plot.scatter(x="a", y="b")
我在将 csv 文件的内容存储到数组中时遇到错误。我的 csv 文件由两列 x 值和 y 值组成。我正在使用 for 循环遍历 csv 文件的文件夹,获取它们的文件名并将列的内容存储在数组中。我的第一列需要存储在 xData[] 中,第二列需要存储在 yData[] 中。 我能够打印文件夹中所有 csv 文件的文件名。 但是,我正在努力寻找将文件内容添加到数组中的逻辑。
我得到
Errno 3: Permission denied error.
我也认为我的 while 循环有问题。
获得 2 个数组后,我想根据 yData 绘制 xData 的值并将高斯拟合到我的数据中。
import csv
import pandas as pd
import numpy as np
from matplotlib import pyplot as plt
from scipy.optimize import curve_fit
from scipy import asarray as ar,exp
import lmfit
from glob import glob
import os
from lmfit import Parameters, minimize, report_fit, Model
import glob
path=r'E:\Users\ConfocalUser\Documents\GitHub\qudi'
location=glob.glob(path+'/*.csv')
###check if the path is correct
xData=[]
yData=[]
While location=True:
with open(path,"r") as f_in:
reader=csv.reader(f_in)
next(reader)
for line in reader:
try:
float_1,float_2=float(line[0]),float(line[1])
xData.append(float_1)
yData.append(float_2)
except ValueError:
continue
最好使用pandas.read_csv
函数(https://pandas.pydata.org/pandas-docs/stable/user_guide/io.html#csv-text-files) to get your csv file directly into a dataframe that you can use to plot the data (https://pandas.pydata.org/pandas-docs/stable/getting_started/intro_tutorials/04_plotting.html)。类似这样的事情:
dataframes = []
for filepath in glob.iglob(path + "/*.csv"):
dataframes.append(pd.read_csv(filepath))
df = pd.concat(dataframes)
# Let's say your csv looks like this:
# "a","b"
# 1,2
# 2,3
# 3,4
# And you want your x data to be the "a" column and y to be "b"
df.plot.scatter(x="a", y="b")