Как я могу удалить строки с нулевыми значениями и категориальными переменными из кадра данных? - PullRequest
0 голосов
/ 31 марта 2020

Я пытаюсь удалить строки с нулевыми значениями и категориальными переменными из кадра данных, который я импортировал из Excel. Я пробовал много других функций и много разных способов сделать это, но я не могу их отбросить, по крайней мере, не все.

Есть около 185000 строк с 6 столбцами. То, что я пытался сделать, это использовать для l oop до go через все строки и отбросить строки, если в столбце «Идентификатор заказа» есть нулевое значение или категориальная переменная.

Это один из кодов, которые я пробовал:

f = 0

value = merged_file.at[f, 'Order ID']
for value in merged_file:
    if value is None:
        merged_file.drop(merged_file.index[f])
        merged_file.reset_index(inplace=True, drop=True)
        f+=1
        continue
    elif value == 'Order ID':
        merged_file.drop(merged_file.index[f])
        merged_file.reset_index(drop=True, inplace=True)
        f+=1
        continue
    elif f==186845:
        break
    else:
        f+=1
        continue

Буду признателен, если поправите меня в том, что я делаю неправильно, и, пожалуйста, дайте мне знать, если есть лучший способ указать и удалить строки или столбцы с помощью нулевые значения и категориальные переменные.

Спасибо.

1 Ответ

0 голосов
/ 31 марта 2020

Похоже, вы используете pandas, даже если код не выглядит действительно pythoni c. В любом случае, я бы посоветовал не выполнять итерацию, хотя каждую строку в фрейме данных можно удалить в pandas строках, содержащих nan, используя dropna :

 merged_file.dropna(subset=['Order ID'],inplace=True)

Для удаления строк, содержащих категориальные переменные вместо этого вы можете использовать numpy isreal . Применить просто применить функцию isreal ко всем строкам, помечая как False все строки, которые не содержат числовых значений.

import numpy as np
merged_file = merged_file[merged_file['Order ID'].apply(lambda x: np.isreal(x))]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...