遍历csv文件目录并将列存储在数组中



我正在尝试遍历csv文件目录。My.csv文件包含2列(x值和y值(。我想循环浏览每个文件,将x和y值存储在一个数组中,并为所有文件绘制x-y图并将其可视化。我已经附加了正在处理的代码,无法生成输出。我的示例csv文件是:

#x0                  y0 ###################
#-7.66E-06,          17763###################
#-7.60E-06,          2853#####################
#-7.53E-06..etc,     3694...etc####################

我试过这段代码,但它没有给我预期的结果

import cv
import glob
path=r"E:Users......qudi"
files=glob.glob(path,'*.csv')
data_frame=pd.DataFrame()
xData=[]
yData=[]
for file in files:
#reading the content of the csv file
df=pd.read_csv(file,index_col=None)
content.append(df)
# converting content to data frame
data_frame=pd.concat(content)
print(data_frame)
#     with open(path,"r") as f_in:
#         reader=csv.reader(f_in)
#         next(reader)
#         for line in reader:
#             try:
#                 print(line)
#                 float_1,float_2=float(line[0]),float(line[1])
#                 xData.append(float_1)
#                 yData.append(float_2)
#             except ValueError:
#                     continue 

任何建议都会有很大帮助。

您可以在每次转换csv文件时通过附加到主df来创建主df,这样您就不需要pd.concat了。您需要首先创建空的主df——您当前的代码尝试附加到内容,而不首先创建内容。

df_main = pd.dataframe()
for file in files:
df=pd.read_csv(file,index_col=None)
df_main = df_main.append(df)

glob函数假定接收1个路径参数。尝试导入os模块,而不是glob.glob(path,'*.csv')写入glob.glob(os.path.join(path,'*.csv'))。还可以尝试打印files变量,以验证glob函数是否找到了正确的文件,并且结果不会为空。

最新更新