Рубрики
Без рубрики

Pandas Dropna () – Drop Null / Na Значения из DataFrame

1. Функция Pandas DataFrame Dropna () Функция Pandas DataFrame Dropna () используется для удаления строк и столбцов с нулевыми значениями NULL / NAN. По умолчанию это

Автор оригинала: Pankaj Kumar.

1. Функция pandas dataframe dropna ()

Функция PandaS DataFrame Dropna () используется для удаления строк и столбцов с значениями NULL/NAN. По умолчанию эта функция возвращает новое dataframe и исходный файл dataframe остается без изменений.

Мы можем создавать нулевые значения, используя none, pandas.nat и numpy.nan переменные.

Синтаксис функции DropNa ():

dropna(self, axis=0, how="any", thresh=None, subset=None, inplace=False)
  • Ось : Возможные значения {0 или «индекс», 1 или «столбцы»}, по умолчанию 0. Если 0, капля строки с нулевыми значениями. Если 1, падение колонн с отсутствующими значениями.
  • Как : Возможные значения {‘any’, ‘all’}, по умолчанию “любой”. Если «любой», отбросьте строку/столбец, если какое-либо из значений нуль. Если «все», отбросьте строку/столбец, если все значения отсутствуют.
  • Thresh : Значение INT для указания порога для операции падения.
  • подмножество : Указывает строки/столбцы, чтобы искать нулевые значения.
  • в помещении : логическое значение. Если true, источник dataframe изменяется, и никто не возвращается.

Давайте посмотрим на несколько примеров использования функции DropNa ().

2. Панда падайте все строки любым нулевым/NAN/NAT ценностями

Это поведение по умолчанию функция DropNa ().

import pandas as pd
import numpy as np

d1 = {'Name': ['Pankaj', 'Meghna', 'David', 'Lisa'], 'ID': [1, 2, 3, 4], 'Salary': [100, 200, np.nan, pd.NaT],
      'Role': ['CEO', None, pd.NaT, pd.NaT]}

df = pd.DataFrame(d1)

print(df)

# drop all rows with any NaN and NaT values
df1 = df.dropna()
print(df1)

Выход:

     Name  ID Salary Role
0  Pankaj   1    100  CEO
1  Meghna   2    200  None
2   David   3    NaN  NaT
3    Lisa   4    NaT  NaT

     Name  ID Salary Role
0  Pankaj   1    100  CEO

3. Снимите все столбцы любым недостающим значением

Мы можем пройти ось = 1 Чтобы отбросить колонны с отсутствующими значениями.

df1 = df.dropna(axis=1)
print(df1)

Выход:

     Name  ID
0  Pankaj   1
1  Meghna   2
2   David   3
3    Lisa   4

4. Перепасть строки/столбец только в том случае, если все значения нуль

import pandas as pd
import numpy as np

d1 = {'Name': ['Pankaj', 'Meghna', 'David', pd.NaT], 'ID': [1, 2, 3, pd.NaT], 'Salary': [100, 200, np.nan, pd.NaT],
      'Role': [np.nan, np.nan, pd.NaT, pd.NaT]}

df = pd.DataFrame(d1)

print(df)

df1 = df.dropna(how='all')
print(df1)

df1 = df.dropna(how='all', axis=1)
print(df1)

Выход:

     Name   ID Salary Role
0  Pankaj    1    100  NaT
1  Meghna    2    200  NaT
2   David    3    NaN  NaT
3     NaT  NaT    NaT  NaT

     Name ID Salary Role
0  Pankaj  1    100  NaT
1  Meghna  2    200  NaT
2   David  3    NaN  NaT

     Name   ID Salary
0  Pankaj    1    100
1  Meghna    2    200
2   David    3    NaN
3     NaT  NaT    NaT

5. Строки/колонны DATAFRAME DOWS/столбцы при пересечении порога нулевых значений

import pandas as pd
import numpy as np

d1 = {'Name': ['Pankaj', 'Meghna', 'David', pd.NaT], 'ID': [1, 2, pd.NaT, pd.NaT], 'Salary': [100, 200, np.nan, pd.NaT],
      'Role': [np.nan, np.nan, pd.NaT, pd.NaT]}

df = pd.DataFrame(d1)

print(df)

df1 = df.dropna(thresh=2)
print(df1)

Выход:

     Name   ID Salary Role
0  Pankaj    1    100  NaT
1  Meghna    2    200  NaT
2   David  NaT    NaN  NaT
3     NaT  NaT    NaT  NaT

     Name ID Salary Role
0  Pankaj  1    100  NaT
1  Meghna  2    200  NaT

Строки с 2 или более нулевыми значениями снижаются.

6. Определите этикетки для поиска нулевых значений

import pandas as pd
import numpy as np

d1 = {'Name': ['Pankaj', 'Meghna', 'David', 'Lisa'], 'ID': [1, 2, 3, pd.NaT], 'Salary': [100, 200, np.nan, pd.NaT],
      'Role': ['CEO', np.nan, pd.NaT, pd.NaT]}

df = pd.DataFrame(d1)

print(df)

df1 = df.dropna(subset=['ID'])
print(df1)

Выход:

     Name   ID Salary Role
0  Pankaj    1    100  CEO
1  Meghna    2    200  NaN
2   David    3    NaN  NaT
3    Lisa  NaT    NaT  NaT

     Name ID Salary Role
0  Pankaj  1    100  CEO
1  Meghna  2    200  NaN
2   David  3    NaN  NaT

Мы можем указать значения индекса в подмножестве при падении столбцов из DataFrame.

df1 = df.dropna(subset=[1, 2], axis=1)
print(df1)

Выход:

     Name   ID
0  Pankaj    1
1  Meghna    2
2   David    3
3    Lisa  NaT

Столбец «ID» не сброшен, поскольку отсутствующее значение выглядит только в индексе 1 и 2.

7. Снижение строк с на месте

Мы можем пройти Inplace = True Чтобы изменить сам источник DataFrame. Это полезно, когда размер DataFrame огромный, и мы хотим сохранить некоторую память.

import pandas as pd

d1 = {'Name': ['Pankaj', 'Meghna'], 'ID': [1, 2], 'Salary': [100, pd.NaT]}

df = pd.DataFrame(d1)

print(df)

df.dropna(inplace=True)
print(df)

Выход:

     Name  ID  Salary
0  Pankaj   1   100.0
1  Meghna   2     NaN

     Name  ID  Salary
0  Pankaj   1   100.0

8. Ссылки