pandas.DataFrame.explode
- DataFrame.explode(column, ignore_index=False)[source]
-
Преобразует каждый элемент спископодобного объекта в строку, дублируя значения индекса.
Введено в версии 0.25.0.
- Параметры
-
- column:ИндексМетка
-
Столбец(ы) для преобразования. Для нескольких столбцов укажите непустой список, каждый элемент которого — строка или кортеж, и для всех указанных столбцов спископодобные данные в строке фрейма должны иметь одинаковую длину.
Введено в версии 1.3.0: Преобразование нескольких столбцов
- ignore_index:bool, по умолчанию False
-
Если True, результирующий индекс будет пронумерован от 0 до n - 1.
Введено в версии 1.1.0.
- Возвращает
-
- DataFrame
-
Взрывающие списки в строки подмножества столбцов; индекс будет дублирован для этих строк.
- Возможные исключения
-
- ValueError:
-
Если столбцы фрейма не уникальны.
Если указанный список столбцов для взрыва пустой.
Если указанные столбцы для взрыва не имеют одинакового количества элементов в строках фрейма.
См. также
DataFrame.unstack-
Поворот уровня меток индекса (обязательно иерархического).
DataFrame.melt-
Преобразование фрейма данных из широкого формата в длинный.
Series.explode-
Взрыв DataFrame из спископодобных столбцов в длинный формат.
Примечания
Эта процедура будет взрывать спископодобные объекты, включая списки, кортежи, множества, Series и np.ndarray. Тип данных результирующих строк подмножества будет object. Скаляры будут возвращены без изменений, а пустые спископодобные объекты приведут к np.nan для этой строки. Кроме того, порядок строк в выходных данных будет неопределенным при взрыве множеств.
Дополнительные примеры см. в руководстве пользователя.
Примеры
>>> df = pd.DataFrame({'A': [[0, 1, 2], 'foo', [], [3, 4]], ... 'B': 1, ... 'C': [['a', 'b', 'c'], np.nan, [], ['d', 'e']]}) >>> df A B C 0 [0, 1, 2] 1 [a, b, c] 1 foo 1 NaN 2 [] 1 [] 3 [3, 4] 1 [d, e]Взрыв одного столбца.
>>> df.explode('A') A B C 0 0 1 [a, b, c] 0 1 1 [a, b, c] 0 2 1 [a, b, c] 1 foo 1 NaN 2 NaN 1 [] 3 3 1 [d, e] 3 4 1 [d, e]Взрыв нескольких столбцов.
>>> df.explode(list('AC')) A B C 0 0 1 a 0 1 1 b 0 2 1 c 1 foo 1 NaN 2 NaN 1 NaN 3 3 1 d 3 4 1 e
© 2008–2022, AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team
Licensed under the 3-clause BSD License.
https://pandas.pydata.org/pandas-docs/version/1.5.0/reference/api/pandas.DataFrame.explode.html