Сценарии манипулирования и преобразования данных
Как обрабатывать пропущенные значения (NaN) в Pandas DataFrame?
Ответ:
Пропущенные значения можно обрабатывать с помощью df.dropna() для удаления строк/столбцов с NaN или df.fillna() для замены NaN на определенное значение (например, 0, среднее, медиану или заполнение вперед/назад). Выбор зависит от данных и целей анализа.
Объясните разницу между loc и iloc для индексации DataFrame.
Ответ:
loc — это индексация, основанная в первую очередь на метках, что означает использование меток строк/столбцов для выбора данных. iloc — это индексация на основе целочисленного положения, что означает использование целочисленных позиций (от 0 до length-1) для выбора данных. Оба метода могут использоваться для одиночного выбора или срезов.
Как выполнить операцию JOIN в стиле SQL между двумя DataFrame в Pandas?
Ответ:
JOIN в стиле SQL выполняются с помощью функции pd.merge(). Вы указываете DataFrame, аргумент on для общих столбцов и аргумент how для типа соединения (например, 'inner', 'left', 'right', 'outer').
Опишите, как группировать данные в DataFrame и применять функцию агрегации.
Ответ:
Данные группируются с помощью метода df.groupby(), указывая столбец(ы) для группировки. После группировки к объекту группы может быть применена функция агрегации, такая как sum(), mean(), count(), min() или max(), для обобщения данных.
Как применить пользовательскую функцию к столбцу или строке DataFrame?
Ответ:
Для операций по столбцам используйте df['column'].apply(custom_func). Для операций по строкам или построчным операциям по нескольким столбцам используйте df.apply(custom_func, axis=1) для строк или df.apply(custom_func, axis=0) для столбцов. Векторизованные операции обычно предпочтительнее для производительности.
Для чего используется pivot_table и чем он отличается от groupby?
Ответ:
pivot_table используется для создания сводной таблицы в стиле электронной таблицы в виде DataFrame, обобщающей данные по одному или нескольким ключевым столбцам. В то время как groupby агрегирует данные на основе одного или нескольких ключей, pivot_table также позволяет разворачивать и изменять форму данных в новый табличный формат с указанными индексом, столбцами и значениями.
Как изменить тип данных столбца в Pandas DataFrame?
Ответ:
Тип данных столбца можно изменить с помощью метода astype(), например, df['column'] = df['column'].astype('int') или df['column'] = pd.to_datetime(df['column']) для дат. Это крайне важно для корректного манипулирования данными и анализа.
Объясните, как удалить дублирующиеся строки из DataFrame.
Ответ:
Дублирующиеся строки можно удалить с помощью метода df.drop_duplicates(). По умолчанию он учитывает все столбцы и сохраняет первое вхождение. Вы можете указать подмножество столбцов с помощью аргумента subset и указать, сохранять ли 'first' (первое), 'last' (последнее) или False (все) дубликаты.
Как создать новые столбцы на основе существующих столбцов в DataFrame?
Ответ:
Новые столбцы можно создать, выполняя операции над существующими столбцами, например, df['new_col'] = df['col1'] + df['col2']. Для более сложной логики можно использовать метод apply() с лямбда-функцией или определенной функцией, либо np.where() для условного присваивания.
Каково назначение stack() и unstack() в Pandas?
Ответ:
stack() преобразует DataFrame (или Series) из широкого формата в длинный, перенося самый внутренний индекс столбцов в самый внутренний индекс строк. unstack() выполняет обратную операцию, перенося самый внутренний индекс строк в самый внутренний индекс столбцов, преобразуя из длинного формата в широкий.
Как отсортировать DataFrame по одному или нескольким столбцам?
Ответ:
DataFrame можно отсортировать с помощью метода df.sort_values(). Вы указываете аргумент by с именем столбца или списком имен столбцов. Аргумент ascending (по умолчанию True) контролирует порядок сортировки, а inplace=True может изменять DataFrame напрямую.
Когда следует использовать pd.concat() вместо pd.merge()?
Ответ:
pd.concat() используется для объединения DataFrame вдоль оси (по строкам или по столбцам), когда они имеют схожие структуры или вы хотите их сложить. pd.merge() используется для объединения DataFrame на основе общих столбцов (ключей), аналогично SQL-соединениям, когда вы хотите объединить связанные данные из разных источников.