我正在尝试打开一个包含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的列表。 关于如何更改/逻辑错误的任何建议。
答案 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
一些假设:
定界符为“,”
您不希望列表中的标题明显,这就是为什么 跳过标题。
您可以阅读文档,也可以使用其他关键字。
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])