Home > OS >  Iterate each cell in a specific column in csv by using pandas in Python
Iterate each cell in a specific column in csv by using pandas in Python

Time:02-11

I have a CSV file, I want to iterate each row of only one specific column.

Let's say, the column name is "phrase", there are 1000 rows in this column as follows:

ID phrase
1 apple
2 banana
... ...

How can I iterate each cell in this column?

I have tried to use:

df = pd.read_csv('myfile.csv', usecols=[1])
for row in df:
    print(row)

I only get value of the first row of this column, not iterate each row, as follows:

Current output:
phrase
Desired output:
phrase # with or without this one are all OK
apple
banana

Does anyone know how can I get the desired result? Thanks!

CodePudding user response:

Don't convert row to list. list('abc') is ['a', 'b', 'c'].

The simplest way to achieve this is with df.phrase.tolist():

import pandas as pd

df = pd.read_csv('myfile.csv')
print(df.phrase.tolist())

outputs

['apple', 'banana']

Since you commented that you don't actually have to use pandas, this can be done with the built-in csv module which might be a bit less overwhelming for a beginner:

import csv

with open('myfile.csv') as f:
    reader = csv.DictReader(f)
    phrases = [line['phrase'] for line in reader]

print(phrases)

Also outputs

['apple', 'banana']
  • Related