pandas.DataFrame.explode
- DataFrame.explode(column, ignore_index=False)[source]
-
Преобразование каждого элемента списка в строку, дублируя значения индексов.
- Параметры:
-
- column:IndexLabel
-
Столбец(ы) для разворачивания. Для нескольких столбцов укажите непустой список, каждый элемент которого — строка или кортеж, и для всех указанных столбцов данные в списке на одной строке фрейма должны иметь одинаковую длину.
Добавлена в версии 1.3.0: Развертывание по нескольким столбцам
- ignore_index:bool, по умолчанию False
-
Если True, результирующий индекс будет помечен значениями 0, 1, …, n - 1.
- Возвращает:
-
- DataFrame
-
Развернутые списки в строки подмножества столбцов; индекс будет дублироваться для этих строк.
- Возбуждает:
-
- ValueError
-
Если столбцы фрейма не уникальны.
Если указанный список столбцов для развертывания пустой.
Если указанные столбцы для развертывания не имеют одинакового количества элементов в строках фрейма.
См. также
DataFrame.unstack-
Поворот уровня меток индексов (обязательно иерархических).
DataFrame.melt-
Преобразование фрейма данных из широкого формата в длинный.
Series.explode-
Развертывание фрейма данных из столбцов со спископодобными данными в длинный формат.
Примечания
Эта функция будет развертывать спископодобные объекты, включая списки, кортежи, множества, 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/2.2.2/reference/api/pandas.DataFrame.explode.html