将数据读入列表

时间:2019-04-02 01:18:39

标签: python

我正在尝试打开一个包含100列和2行的CSV文件。我想读取文件,并将第一列中的数据放入一个列表(我的x_coordinates),第二列中的数据放入另一个列表(我的y_coordinates)

X= []
Y = []

data = open("data.csv")
headers = data.readline()
readMyDocument = data.read()


for data in readMyDocument:
    X = readMyDocument[0]
    Y = readMyDocument[1]

print(X)
print(Y)

我正在寻找两个列表,但输出只是一个2的列表。 关于如何更改/逻辑错误的任何建议。

4 个答案:

答案 0 :(得分:0)

您可以执行以下操作:

$set

看看是否可行。

答案 1 :(得分:0)

您可以使用熊猫:

import csv

# No need to initilize your lists here
X = []
Y = []

with open('data.csv', 'r') as f:
    data = list(csv.reader(f))

X = data[0]
Y = data[1]

print(X)
print(Y)

或者您可以

import pandas as pd
XY = pd.read_csv(path_to_file)
X = XY.iloc[:,0]
Y = XY.iloc[:,1]

答案 2 :(得分:0)

首先,要关闭文件。
一个好的做法是在打开文件时使用color = [] for key,value in ms.iterrows(): if(value['Color']=='Blue'): color.append('b') elif(value['Color']=='Green'): color.append('g') elif(value['Color']=='Red'): color.append('r') elif(value['Color']=='Yellow'): color.append('y') elif(value['Color']=='Orange'): color.append('o') else: color.append('k') ax =ms[['Height','Color']].plot(x='Color', kind='bar', title="Correlation", figsize=(15,10), color=color legend=True, fontsize=12) ax.set_xlabel("Colors", fontsize=12) ax.set_ylabel("Height", fontsize=12) ,以便即使代码中断也可以关闭它。

然后,如果只需要一列,则可以使用列分隔符来分隔行,并仅使用所需的列。

但这只是一种学习,在实际情况下,您可能想使用内置于csv或甚至更好的pandas之类的库。

with

Ps .:我忽略了一些您使用但未在代码段中声明的变量。但是它们也可能是一个问题。

答案 3 :(得分:0)

使用numpy的genfromtxt,在此处阅读文档:https://docs.scipy.org/doc/numpy/reference/generated/numpy.genfromtxt.html

一些假设:

  1. 定界符为“,”

  2. 您不希望列表中的标题明显,这就是为什么 跳过标题。

您可以阅读文档,也可以使用其他关键字。

import numpy as np

X= list(np.genfromtxt('data.csv',delimiter=",",skip_header=1)[:,0])
Y = list(np.genfromtxt('data.csv',delimiter=",",skip_header=1)[:,1])