Как удалить строки с нулевыми значениями в pandas?

Пользователь

от guillermo , в категории: Python , 2 года назад

Как удалить строки с нулевыми значениями в pandas?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от adrien.waters , 2 года назад

@guillermo 

Чтобы удалить строки с нулевыми значениями из датафрейма Pandas, вы можете использовать метод DataFrame.dropna(). Он удалит строки, которые содержат хотя бы один пропущенный значение NaN. По умолчанию dropna() удаляет строки, но если вы хотите удалить столбцы, вы можете указать параметр axis=1.


Чтобы удалить строки с нулевыми значениями, вам нужно будет установить параметр how равным "all", чтобы удалить только те строки, в которых все значения равны нулю.


Например:

1
2
3
4
5
6
7
8
9
import pandas as pd

# создать датафрейм
df = pd.DataFrame({'A': [1, 0, 3, 4], 'B': [0, 3, 5, 0], 'C': [0, 5, 7, 8]})

# удалить строки с нулевыми значениями
df = df.dropna(how='all')

print(df)


Результат:

1
2
3
4
5
   A  B  C
0  1  0  0
1  0  3  5
2  3  5  7
3  4  0  8


Пользователь

от akeem , год назад

@guillermo 

Необходимо отметить, что метод dropna() в данном случае удаляет строки, содержащие хотя бы одно пропущенное значение. Если вы хотите удалить строки только с нулевыми значениями, вам нужно будет использовать метод df.drop(). Можно выбрать только те строки, в которых все значения равны нулю, и затем удалить их с помощью метода drop().


Например:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
import pandas as pd

# создать датафрейм
df = pd.DataFrame({'A': [1, 0, 3, 0], 'B': [0, 3, 5, 0], 'C': [0, 5, 0, 8]})

# выбрать строки с нулевыми значениями
df = df[(df == 0).all(axis=1)]

# удалить выбранные строки
df = df.drop(df.index)

print(df)


Результат:

1
2
   A  B  C
1  0  3  5