Python3.x:在for循环中读取csv文件中的多列

时间:2019-10-11 00:09:39

标签: python-3.x for-loop

我要使用python分析的文件夹中有许多csv文件。每个csv文件包含一组y和多个x值。例如,一个csv文件如下所示。 (所有csv文件的x和y数均相同)

y    x1    x2    x3
1   0.5   0.1   2.0
2   1.0   0.2   3.0
3   2.5   0.7   0.5
4   0.4   1.2   0.1
5   0.2   4.0   9.0
6   1.2   5.0   0.2

我正在读取文件夹中的所有csv文件,并尝试读取y和x:

my_xlist=[x1,x2,x3] #these are string. 


for file in myfiles:
    my_y = []
    my_x = []

    with open('my_folder/'+file, 'r') as f:   
        data = csv.reader(f,delimiter=',') 
        for row in data:
            my_y.append(float(row[0]))
            my_x.append(float(row[1:len(my_xlist)])) #not sure about this line

当前,它按行读取x值。

期望的结果如下(x值按列读取):

my_y=[1,2,3,4,5,6]
my_x=([0.1,1.0,2.5,0.4,0.2,1.2], [0.1,0.2,0.7,1.2,4.0,5.0], [2.0,3.0,0.5,0.1,9.0,0.2]) 

你们中的任何人都可以帮助我阅读x的所有列吗?

1 个答案:

答案 0 :(得分:0)

您可以尝试Pandas读取csv。熊猫读取csv ma​​ke DataFrame对象,这对于进一步操作信息很有帮助。可能遵循以下代码将对您有所帮助。

import pandas as pd
import os

list_of_dataframe = []
for file in os.listdir("path/to/directory"):
    temp = pd.read_csv(str("path/to/directory/" + file))
    list_of_dataframe.append(temp)
df = pd.concat(list_of_dataframe) # This dataframe contains all information