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

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

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

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
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). 大致如下:

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")

相关问题