Pandas: як використовувати dropna() із thresh


Ви можете використовувати функцію dropna() , щоб видалити рядки з DataFrame pandas, які містять відсутні значення.

Ви також можете використовувати аргумент thresh , щоб вказати мінімальну кількість значень, відмінних від NaN, які рядок або стовпець має зберігатися в DataFrame.

Ось найпоширеніші способи використання порогового аргументу на практиці:

Спосіб 1. Зберігайте лише рядки з мінімальною кількістю значень, відмінних від NaN

 #only keep rows with at least 2 non-NaN values
df. dropna (thresh= 2 )

Спосіб 2. Зберігайте лише рядки з мінімальним відсотком значень, відмінних від NaN

 #only keep rows with at least 70% non-NaN values
df. dropna (thresh= 0.7 * len (df. columns ))

Спосіб 3. Зберігайте лише стовпці з мінімальною кількістю значень, відмінних від NaN

 #only keep columns with at least 6 non-NaN values
df. dropna (thresh= 6 ,axis= 1 )

Спосіб 4. Зберігайте лише стовпці з мінімальним відсотком значень, відмінних від NaN

 #only keep columns with at least 70% non-NaN values
df. dropna (thresh= 0.7 * len (df), axis= 1 )

Наступні приклади показують, як використовувати кожен метод на практиці з такими pandas DataFrame:

 import pandas as pd
import numpy as np

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'],
                   ' points ': [18, np.nan, 19, 14, 14, 11, 20, np.nan],
                   ' assists ': [5, np.nan, np.nan, 9, np.nan, 9, 9, 4],
                   ' rebounds ': [11, np.nan, 10, 6, 6, 5, 9, np.nan]})

#view DataFrame
print (df)

  team points assists rebounds
0 A 18.0 5.0 11.0
1 B NaN NaN NaN
2 C 19.0 NaN 10.0
3D 14.0 9.0 6.0
4 E 14.0 NaN 6.0
5 F 11.0 9.0 5.0
6G 20.0 9.0 9.0
7H NaN 4.0 NaN

Приклад 1. Зберігайте лише рядки з мінімальною кількістю значень, відмінних від NaN

Ми можемо використовувати наступний синтаксис, щоб зберегти лише ті рядки у DataFrame, які мають принаймні 2 значення, відмінні від NaN:

 #only keep rows with at least 2 non-NaN values
df. dropna (thresh= 2 )

	team points assists rebounds
0 A 18.0 5.0 11.0
2 C 19.0 NaN 10.0
3D 14.0 9.0 6.0
4 E 14.0 NaN 6.0
5 F 11.0 9.0 5.0
6G 20.0 9.0 9.0
7H NaN 4.0 NaN

Зауважте, що рядок у позиції індексу 1 було видалено, оскільки воно мало лише одне значення, відмінне від NaN, у всьому рядку.

Приклад 2. Зберігайте лише рядки з мінімальним відсотком значень, відмінних від NaN

Ми можемо використовувати наступний синтаксис, щоб зберегти лише ті рядки в DataFrame, які мають принаймні 70% значень, відмінних від NaN:

 #only keep rows with at least 70% non-NaN values
df. dropna (thresh= 0.7 * len (df. columns ))

        team points assists rebounds
0 A 18.0 5.0 11.0
2 C 19.0 NaN 10.0
3D 14.0 9.0 6.0
4 E 14.0 NaN 6.0
5 F 11.0 9.0 5.0
6G 20.0 9.0 9.0

Зауважте, що рядки в індексних позиціях 1 і 7 були видалені, оскільки ці рядки не містили принаймні 70% значень як значень, відмінних від NaN.

Приклад 3. Зберігайте лише стовпці з мінімальною кількістю значень, відмінних від NaN

Ми можемо використовувати наступний синтаксис, щоб зберегти лише ті стовпці у DataFrame, які мають принаймні 6 значень, відмінних від NaN:

 #only keep columns with at least 6 non-NaN values
df. dropna (thresh= 6 ,axis= 1 )

        team points rebounds
0 A 18.0 11.0
1 B NaN NaN
2 C 19.0 10.0
3D 14.0 6.0
4E 14.0 6.0
5 F 11.0 5.0
6G 20.0 9.0
7 H NaN NaN

Зверніть увагу, що стовпець «допомоги» було видалено, оскільки цей стовпець не містив принаймні 6 значень, відмінних від NaN.

Приклад 4. Зберігайте лише стовпці з мінімальним відсотком значень, відмінних від NaN

Ми можемо використовувати наступний синтаксис, щоб зберегти лише ті стовпці у DataFrame, які мають принаймні 70% значень, відмінних від NaN:

 #only keep columns with at least 70% non-NaN values
df. dropna (thresh= 0.7 * len (df), axis= 1 )

        team points rebounds
0 A 18.0 11.0
1 B NaN NaN
2 C 19.0 10.0
3D 14.0 6.0
4E 14.0 6.0
5 F 11.0 5.0
6G 20.0 9.0
7 H NaN NaN

Зверніть увагу, що стовпець «підтримка» було видалено, оскільки цей стовпець не містив принаймні 70% значень, відмінних від NaN.

Примітка . Повну документацію щодо функції pandas dropna() можна знайти тут .

Додаткові ресурси

У наступних посібниках пояснюється, як виконувати інші типові завдання в pandas:

Pandas: як скинути індекс після використання dropna()
Pandas: як використовувати dropna() із певними стовпцями
Pandas: як видалити рядки на основі кількох умов

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *