Read in the first column of a CSV in python
You can also use pandas
here:
import pandas as pd
df = pd.read_csv(mylist.csv)
Then, getting the first column is as easy as:
matrix2 = df[df.columns[0]].as_matrix()
list2 = matrix2.tolist()
This will return only the first column in list
. You might want to consider leaving the data in numpy
, if you're conducting further data operation on the result you get.
you import csv
, but then never use it to actually read the CSV. Then you open mylist.csv
as a normal file, so when you declare:
for row in f:
list2.append(row[0])
What you're actually telling Python to do is "iterate through the lines, and append the first element of the lines (which would be the first letter) to list2
". What you need to do, if you want to use the CSV module, is:
import csv
with open('mylist.csv', 'r') as f:
csv_reader = csv.reader(f, delimiter=' ')
for row in csv_reader:
list2.append(row[0])
You should split
the row and then append the first item
list2 = []
with open("mylist.csv") as f:
for row in f:
list2.append(row.split()[0])
You could also use a list comprehension which are pretty standard for creating lists:
with open("mylist.csv") as f:
list2 = [row.split()[0] for row in f]