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