我有一个CSV(mylist.csv),其中有两列与此类似:
jfj840398jgg item-2f hd883hb2kjsd item-9k jie9hgtrbu43 item-12 fjoi439jgnso item-3i
我需要将第一列读入变量,所以我得到:
jfj840398jgg hd883hb2kjsd jie9hgtrbu43 fjoi439jgnso
我尝试了以下内容,但它只给了我每列的第一个字母:
import csv
list2 = []
with open("mylist.csv") as f:
for row in f:
list2.append(row[0])
所以上面代码的结果给了我list2:
[' j',' h',' j',' f']
答案 0 :(得分:4)
您应该split
该行,然后附加第一项
list2 = []
with open("mylist.csv") as f:
for row in f:
list2.append(row.split()[0])
您还可以使用列表理解,它们非常适合创建列表:
with open("mylist.csv") as f:
list2 = [row.split()[0] for row in f]
答案 1 :(得分:2)
导入csv
,但从不使用它来实际读取CSV。然后你打开mylist.csv
作为普通文件,所以当你声明:
for row in f:
list2.append(row[0])
你实际上告诉Python要做的是“遍历这些行,并将行的第一个元素(这将是第一个字母)附加到list2
”。如果要使用CSV模块,您需要做的是:
import csv
with open('mylist.csv', 'r') as f:
csv_reader = csv.reader(f, delimiter=' ')
for row in csv_reader:
list2.append(row[0])
答案 2 :(得分:1)
您也可以在此处使用pandas
:
import pandas as pd
df = pd.read_csv(mylist.csv)
然后,获取第一列就像:
matrix2 = df[df.columns[0]].as_matrix()
list2 = matrix2.tolist()
这将仅返回list
中的第一列。如果您对结果进行进一步的数据操作,您可能需要考虑将数据保留在numpy
中。
答案 3 :(得分:1)
这对我很有帮助。
import csv
with open("processes_infos.csv", "r", newline="") as file:
reader = csv.reader(file, delimiter=",")
for row in reader:
print(row[0], row[1])
您可以将定界符“,”更改为“”
答案 4 :(得分:0)
最简单的答案
import pandas as pd
df = pd.read_csv(mylist.csv)
matrix2 = df[df.columns[0]].to_numpy()
list1 = matrix2.tolist()
print(list1)