Skip to content Skip to sidebar Skip to footer

Read In The First Column Of A CSV In Python

I have a CSV (mylist.csv) with 2 columns that look similar to this: jfj840398jgg item-2f hd883hb2kjsd item-9k jie9hgtrbu43 item-12 fjoi439jgnso item-3i I need to r

Solution 1:

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]

Solution 2:

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.


Solution 3:

You can use the csv module:

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])

You can change the delimiter "," into " ".


Solution 4:

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])

Solution 5:

The simplest answer

import pandas as pd
df = pd.read_csv(mylist.csv)
matrix2 = df[df.columns[0]].to_numpy()
list1 = matrix2.tolist()
print(list1)

Post a Comment for "Read In The First Column Of A CSV In Python"