В Python, как я могу удалить целые строки, где определенный столбец пуст?

Шаги, которые работали на меня: 1. Отсоедините телефон от USB-кабеля 2. Отмените USB-отладку на телефоне 3. Перезагрузите устройство. 4. Подключите устройство. Наиболее важной частью была перезагрузка устройства. Не работал без него.

0
задан Joseph Sanders 16 January 2019 в 17:30
поделиться

2 ответа

Вы можете использовать библиотеку pandas для этого:

1.) Считайте свой CSV в кадр данных pandas:

import pandas as pd
df = pd.read_csv('hallpass_raw.csv', sep=',')

Пример: Допустим, так выглядит ваш кадр данных .

In [365]: df
Out[365]: 
  fname   age  salary
0     a   5.0     1.5
1     a   5.0     1.5
2     b           1.0
3     b  15.0     
4     c  20.0     1.0

2.) Удалить строки с определенным столбцом как NULL:

Вы хотите удалить строки, имеющие значение NULL в столбце age:

In [364]: df = df[df.age <> '']
Out[364]: 
  fname   age  salary
0     a   5.0     1.5
1     a   5.0     1.5
3     b  15.0     
4     c  20.0     1.0
[1113 ] Вы можете видеть, что второй ряд отброшен.

3.) Запишите обработанный фрейм данных обратно в csv:

df.to_csv('new.csv', index=False)

При этом вам не нужно беспокоиться о сложных циклах для обработки вашего csv.

0
ответ дан Mayank Porwal 16 January 2019 в 17:30
поделиться

Используйте оператор if

def guardiansfather():
    with open('hallpass_raw.csv') as csv_file:
        csv_reader = csv.reader(csv_file, delimiter=',')
        with open('outputfiles/guardians_father.csv', mode='w', newline='') as output_file:
            write = csv.writer(output_file, delimiter=',', quoting=csv.QUOTE_MINIMAL)
            for row in csv_reader:
                a = row[0]
                b = row[1]
                c = row[2]
                studentnumber = row[3]
                firstname = row[4]
                middlename = row[5]
                lastname = row[6]
                teacher = row[7]
                idnumber = row[8]
                father = row[9]

                # Skip rows with empty father
                if father.strip() == '':
                    continue

                mother = row[10]
                guardianemail = row[11]
                phone = row[12]
                fatheremail = row[13]
                motheremail = row[14]
                guardianphone = row[15]
                schoolname = 'NAME OF SCHOOL'
                relationship = 'Father'
                father_first = father.split(sep=','[0])
                father_last = father.split(sep=', '[1])

                write.writerow([schoolname, studentnumber, father_first, father_last, relationship, phone, fatheremail])
.
0
ответ дан Barmar 16 January 2019 в 17:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: