从一堆选定的Excel工作表中绘制图形

时间:2019-05-28 11:04:04

标签: python

文件夹中有很多csv excel工作表。所有Excel工作表仅在前3列中包含数据。我将从大量的csv工作表中选择相应的csv工作表,然后将其绘制。这是代码

import os
path = "F:\\Users\\Desktop\\Data\\Summary"
files = []
test_folders = os.listdir(path) 
folder_data = os.listdir(path)
# r=root, d=directories, f = files
for r, d, f in os.walk(path):
    for file in f:
        if '.csv' in file:
            files.append(file)
for i, f in enumerate(files):
    print("%d-%s"%( i,f))
    csv_code = int(input("Enter corresponding code to plot: "))
    csv_path = folder_data + "\\" + folder_data[csv_code] 

    df = pd.read_csv(csv_path, header=None)
    df1 = df.iloc[:,0:2]
    plt.plot(df1[0], df1[1])

当我运行代码时,我希望输出显示如下(我的意思是我希望显示该文件夹中的所有csv文件,以便我可以选择想要的内容):

0-Test_Summary_1.csv
1-Test_Summary_2.csv
2-Test_Summary_3.csv
3-Test_Summary_4.csv
4-Test_Summary_5.csv
5-Test_Summary_6.csv etc

以便我选择对应的代码(例如1或2或3)进行绘制。

这是错误

   csv_path = folder_data + "\\" + folder_data[csv_code]

TypeError: can only concatenate list (not "str") to list

2 个答案:

答案 0 :(得分:0)

folder_data在您提供的代码中不是已定义的变量吗?通过扩展名folder_data[csv_code]也不是。 是您收到错误的行应该是:

csv_path = path + "\\" + csv_code

答案 1 :(得分:0)

关于您的实际错误消息: folder_data是一个列表,您要向其中添加一个字符串"\\",该字符串不起作用。如果要将"\\"附加到列表中的每个元素,则必须执行以下操作:folder_data = [i+"\\" for i in folder_data]。您可能想做的是使用path + "\\" + folder_data[csv_code}来获取单个csv文件的完整路径。