Home > Enterprise >  How to delete a row in a CSV file if a cell is empty using Python
How to delete a row in a CSV file if a cell is empty using Python

Time:06-15

I want to go through large CSV files and if there is missing data I want to remove that row completely, This is only row specific so if there is a cell that = 0 or has no value then I want to remove the entire row. I want this to happen for all the columns so if any column has a black cell it should delete the row, and return the corrected data in a corrected csv.

import csv

with open('data.csv', 'r') as csvfile:
    csvreader = csv.reader(csvfile)
    for row in csvreader:
        print(row)
        if not row[0]:
             print("12")

This is what I found and tried but it doesnt not seem to be working and I dont have any ideas about how to aproach this problem, help please?

Thanks!

CodePudding user response:

import csv

with open('data.csv', 'r') as csvfile:
    csvreader = csv.reader(csvfile)
    for row in csvreader:
        if row[0] == 0 or len(row[0]) < 1:
             continue

can you try this out?

CodePudding user response:

maybe like this

import csv

with open('data.csv', 'r') as csvfile:
    csvreader = csv.reader(csvfile)
    data=list(csvreader)

data=[x for x in data if '' not in x and '0' not in x]

you can then rewrite the the csv file if you like

CodePudding user response:

Instead of using csv, you should use Pandas module, something like this.

import pandas as pd

df = pd.read_csv('file.csv')
print(df)

index = 1 #index of the row that you want to remove
df = df.drop(index)
print(df) 

df.to_csv('file.csv')
  • Related