On 10/05/2015 03:29 PM, Jaydip Chakrabarty wrote:
Hello,

I have a csv file like this.

Name,Surname,Age,Sex
abc,def,,M
,ghi,,F
jkl,mno,,
pqr,,,F

I want to find out the blank columns, that is, fields where all the
values are blank. Here is my python code.

fn = "tmp1.csv"
fin = open(fn, 'rb')
rdr = csv.DictReader(fin, delimiter=',')
data = list(rdr)
flds = rdr.fieldnames
fin.close()
mt = []
flag = 0
for i in range(len(flds)):
     for row in data:
         if len(row[flds[i]]):
             flag = 0
             break
         else:
             flag = 1
     if flag:
         mt.append(flds[i])
         flag = 0
print mt

I need to know if there is better way to code this.

Thanks.

Operations on columns are often simpler, if a table is rotated beforehand. Columns become lists.

def find_empty_columns (table):
    number_of_records = len (table)
    rotated_table = zip (*table)
    indices_of_empty_columns = []
    for i in range (len (rotated_table)):  # Column indices
        if rotated_table[i].count ('') == number_of_records:
            indices_of_empty_columns.append (i)
    return indices_of_empty_columns

Frederic
--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to