Транспонировать столбец в Pandas DataFrame

У меня есть фрейм данных ниже, я пытаюсь перенести данные на основе столбца Place. Для каждого списка значений в столбце «Место» мне нужно создать каждую строку.

Language   Capital   Place
Tamil      Chennai   ['Chennai', 'Vellore', 'Trichy', 'Madurai']
Kerala     Kochi     ['Kochi', 'Trivandrum']

Ожидаемый результат

Language     Capital     Place
Tamil        Chennai     Chennai
Tamil        Chennai     Vellore
Tamil        Chennai     Trichy
Tamil        Chennai     Madurai 
Kerala       Kochi       Kochi
Kerala       Kochi       Trivandrum

Я пробовал много способов, используя транспонирование панд, но не смог получить ожидаемый результат. Я также получил и преобразовал столбец Place в серию кадров данных, но все еще не смог получить результат.

Любое предложение будет оценено по достоинству

Используйте взрыв, чтобы распаковать список -> df.explode('Place')

Triky 26.08.2024 20:37
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
1
50
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Используйте ast.literal_eval для преобразования строковых представлений в реальные списки:

import ast
df['Place'] = df['Place'].apply(ast.literal_eval)

Преобразуйте каждый элемент списка в «Место» в отдельную строку, скопируйте значения других столбцов и сбросьте индекс DataFrame для очистки:

df_exploded = df.explode('Place').reset_index(drop=True)
print(df_exploded)

Этого можно добиться, используя функцию взрыв() библиотеки pandas, которая преобразует каждый элемент столбца в виде списка в строку, копируя значения других столбцов.

import pandas as pd

data = {
    'Language': ['Tamil', 'Kerala'],
    'Capital': ['Chennai', 'Kochi'],
    'Place': [['Chennai', 'Vellore', 'Trichy', 'Madurai'], ['Kochi', 'Trivandrum']]
}
df = pd.DataFrame(data)
df_exploded = df.explode('Place')
print(df_exploded)

Другие вопросы по теме