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]

Tags:

Python

Csv