Метод explode
Метод explode применяется к DataFrame
и преобразует столбцы, содержащие списки или подобные
структуры (например, Series с элементами-списками),
в отдельные строки. В результате каждый элемент списка
становится значением в новой строке, а значения из других
столбцов дублируются. Основной параметр - имя столбца
для разворачивания. Дополнительно можно управлять поведением
при пустых списках и пропущенных значениях.
Синтаксис
df.explode(column, ignore_index=False)
Пример
Развернём столбец со списками в отдельные строки:
import pandas as pd
df = pd.DataFrame({
'a': [[1, 2], [3, 4, 5], [6]],
'b': ['x', 'y', 'z']
})
res = df.explode('a')
print(res)
Результат выполнения кода:
a b
0 1 x
0 2 x
1 3 y
1 4 y
1 5 y
2 6 z
Пример
Используем параметр ignore_index для переиндексации
результата. Развернём столбец и получим новый индекс:
import pandas as pd
df = pd.DataFrame({
'a': [[10, 20], [30, 40, 50]],
'b': ['first', 'second']
})
res = df.explode('a', ignore_index=True)
print(res)
Результат выполнения кода:
a b
0 10 first
1 20 first
2 30 second
3 40 second
4 50 second
Пример
Развернём несколько столбцов с разными структурами. Метод применяется последовательно к каждому указанному столбцу:
import pandas as pd
df = pd.DataFrame({
'a': [[1, 2], [3]],
'b': [['x', 'y'], ['z']],
'c': [10, 20]
})
res = df.explode(['a', 'b'])
print(res)
Результат выполнения кода:
a b c
0 1 x 10
0 2 y 10
1 3 z 20