У меня есть вложенный список ниже,
list = [Language:'Tamil'
Capital: 'Chennai'
Place: 'Chennai', 'Vellore', 'Trichy', 'Madurai'
]
Я ожидаю транспонировать это как,
Language Capital Place
Tamil Chennai Chennai
Tamil Chennai Vellore
Tamil Chennai Trichy
Tamil Chennai Madurai
Попробовал преобразовать в фрейм данных pandas,
df = pd.DataFrame(list)
Результат
Language Capital Place
Tamil Chennai ['Chennai', 'Vellore', 'Trichy', 'Madurai']
Будем признательны за предложения перенести каждый список значений в новую строку для этого места.
(достаточно того, как Python выведет вашу структуру данных, если вы просто распечатаете ее)
Это список словаря, тип этого класса — список.
Данные вашего примера не похожи на список словарей. Ваш предполагаемый результат также неясен. Пожалуйста, отредактируйте свой вопрос так, чтобы как входные, так и предполагаемые выходные данные были допустимыми литералами Python.
Первый:
data = {
'Language': 'Tamil',
'Capital': 'Chennai',
'Place': ['Chennai', 'Vellore', 'Trichy', 'Madurai']
}
Затем вы можете создать DataFrame, повторив значения языков и заглавных букв и развернув список мест на несколько строк:
df = pd.DataFrame({
'Language': [data['Language']] * len(data['Place']),
'Capital': [data['Capital']] * len(data['Place']),
'Place': data['Place']
})
Выход:
Language Capital Place
0 Tamil Chennai Chennai
1 Tamil Chennai Vellore
2 Tamil Chennai Trichy
3 Tamil Chennai Madurai
from itertools import product
data = {
"Language": "Tamil",
"Capital": "Chennai",
"Place": ["Chennai", "Vellore", "Trichy", "Madurai"]
}
results = list(product([data["Language"]], [data["Capital"]], data["Place"]))
for result in results:
print(f'{result[0]: <10} {result[1]: <10} {result[2]}')
Предполагая, что эти входные данные и вы хотите преобразовать в pandas DataFrame:
data = {
'Language': 'Tamil',
'Capital': 'Chennai',
'Place': ['Chennai', 'Vellore', 'Trichy', 'Madurai']
}
Если вы знаете ключ, содержащий список, просто взорвите его:
import pandas as pd
out = pd.DataFrame(data).explode('Place')
Если вы хотите программно идентифицировать ключи, содержащие списки:
from itertools import product
out = pd.DataFrame(product(*(v if isinstance(v, list) else [v]
for v in data.values())),
columns=data
)
Выход:
Language Capital Place
0 Tamil Chennai Chennai
1 Tamil Chennai Vellore
2 Tamil Chennai Trichy
3 Tamil Chennai Madurai
Первый пункт вашего вопроса ни в коем случае не является «списком». Это может быть словарь, где последний элемент имеет список в качестве значения. Не могли бы вы отредактировать сообщение, чтобы оно было синтаксически правильным?