Панды — очистка пустых ячеек
Пустые ячейки
Пустые ячейки потенциально могут дать вам неверный результат при анализе данных.
Удалить строки
Один из способов справиться с пустыми ячейками — удалить строки, содержащие пустые ячейки.
Обычно это нормально, так как наборы данных могут быть очень большими, и удаление нескольких строк не окажет большого влияния на результат.
Пример
Вернуть новый фрейм данных без пустых ячеек:
import pandas as pd
df = pd.read_csv('data.csv')
new_df = df.dropna()
print(new_df.to_string())
В наших примерах очистки мы будем использовать CSV-файл с именем «dirtydata.csv».
Загрузите грязные данные.csv . или Откройте dirtydata.csv
Примечание. По умолчанию dropna()
метод возвращает новый кадр данных и не меняет исходный.
Если вы хотите изменить исходный DataFrame, используйте
inplace = True
аргумент:
Пример
Удалить все строки со значениями NULL:
import pandas as pd
df = pd.read_csv('data.csv')
df.dropna(inplace = True)
print(df.to_string())
Примечание. Теперь dropna(inplace = True)
НЕ вернет новый DataFrame, но удалит все строки, содержащие значения NULL, из исходного DataFrame.
Заменить пустые значения
Другой способ работы с пустыми ячейками — вставить вместо них новое значение.
Таким образом, вам не придется удалять целые строки только из-за пустых ячеек.
Метод fillna()
позволяет нам заменить пустые ячейки значением:
Пример
Замените значения NULL на число 130:
import pandas as pd
df = pd.read_csv('data.csv')
df.fillna(130, inplace = True)
Заменить только для указанных столбцов
В приведенном выше примере заменяются все пустые ячейки во всем фрейме данных.
Чтобы заменить пустые значения только для одного столбца, укажите имя столбца для DataFrame:
Пример
Замените значения NULL в столбцах «Калории» на число 130:
import pandas as pd
df = pd.read_csv('data.csv')
df["Calories"].fillna(130, inplace = True)
Получите сертификат!
ЗАРЕГИСТРИРОВАТЬСЯ НА 10 $
Замена с использованием среднего, медианы или режима
Обычный способ замены пустых ячеек — вычисление среднего, медианного или модового значения столбца.
Pandas использует методы mean()
median()
и mode()
для вычисления соответствующих значений для указанного столбца:
Пример
Вычислите СРЕДНЕЕ значение и замените им любые пустые значения:
import pandas as pd
df = pd.read_csv('data.csv')
x = df["Calories"].mean()
df["Calories"].fillna(x, inplace = True)
Среднее = среднее значение (сумма всех значений, деленная на количество значений).
Пример
Вычислите МЕДИАНУ и замените ею любые пустые значения:
import pandas as pd
df = pd.read_csv('data.csv')
x = df["Calories"].median()
df["Calories"].fillna(x, inplace = True)
Медиана = значение в середине после того, как вы отсортировали все значения по возрастанию.
Пример
Вычислите MODE и замените им любые пустые значения:
import pandas as pd
df = pd.read_csv('data.csv')
x = df["Calories"].mode()[0]
df["Calories"].fillna(x, inplace = True)
Режим = значение, которое появляется чаще всего.