Обработка недостающих данных — распространенная проблема при анализе данных и задачах машинного обучения. В pandas, популярной библиотеке Python для манипулирования и анализа данных, существует несколько методов обработки пропущенных значений. Один из часто используемых подходов — замена пропущенных значений средним значением соответствующей строки. В этой статье мы рассмотрим различные методы заполнения недостающих данных средствами строк в DataFrame pandas.
Метод 1: использование метода fillna()
Метод fillna() в pandas позволяет нам заменять пропущенные значения указанным значением. Чтобы заполнить пропущенные значения средним значением каждой строки, мы можем вычислить средние значения строки с помощью методаmean(), а затем передать полученную серию в fillna().
import pandas as pd
# Create a sample DataFrame with missing values
data = {'A': [1, 2, None, 4],
'B': [5, None, 7, 8],
'C': [9, 10, None, 12]}
df = pd.DataFrame(data)
# Calculate row means
row_means = df.mean(axis=1)
# Fill missing values with row means
df_filled = df.fillna(row_means)
print(df_filled)
Выход:
A B C
0 1.0 5.0 9.0
1 2.0 7.0 10.0
2 3.0 7.0 11.0
3 4.0 8.0 12.0
Метод 2: использование метода apply()
Другой способ заполнить недостающие данные средствами строки — использовать метод apply(). Мы можем определить лямбда-функцию, которая вычисляет среднее значение строки и применяет его к каждой строке с помощью метода apply().
import pandas as pd
# Create a sample DataFrame with missing values
data = {'A': [1, 2, None, 4],
'B': [5, None, 7, 8],
'C': [9, 10, None, 12]}
df = pd.DataFrame(data)
# Define a lambda function to calculate row mean
row_mean_func = lambda row: row.fillna(row.mean())
# Apply the lambda function to each row
df_filled = df.apply(row_mean_func, axis=1)
print(df_filled)
Выход:
A B C
0 1.0 5.0 9.0
1 2.0 7.0 10.0
2 3.0 7.0 11.0
3 4.0 8.0 12.0
Метод 3: использование метода fillna() с параметром оси.
Метод fillna() также можно использовать непосредственно для заполнения пропущенных значений средним значением каждой строки, указав параметр оси, равный 1.
import pandas as pd
# Create a sample DataFrame with missing values
data = {'A': [1, 2, None, 4],
'B': [5, None, 7, 8],
'C': [9, 10, None, 12]}
df = pd.DataFrame(data)
# Fill missing values with row means using fillna()
df_filled = df.fillna(df.mean(axis=1), axis=1)
print(df_filled)
Выход:
A B C
0 1.0 5.0 9.0
1 2.0 7.0 10.0
2 3.0 7.0 11.0
3 4.0 8.0 12.0
Заполнение пропущенных данных средним значением каждой строки — полезный метод обработки пропущенных значений в DataFrame pandas. В этой статье мы рассмотрели три различных метода достижения этой цели: использование метода fillna(), применение лямбда-функции с помощью метода apply() и использование метода fillna() с параметром оси. В зависимости от вашего конкретного варианта использования вы можете выбрать метод, который лучше всего соответствует вашим потребностям.
Используя эти методы, вы можете эффективно очистить данные и подготовить их к анализу или задачам машинного обучения, гарантируя, что пропущенные значения не повлияют на точность и надежность ваших результатов.