У меня есть список кортежей, которые я хочу преобразовать в фрейм данных pandas и записать в excel с заголовками столбцов.
Column_headers = ["Name", "Count1", "Count2"]
mylist = [('A',(1,2)), ('B',(23,2)), ('C',(1,23)), ('D',(5,23))]
Вывод в Excel
Name | Count1 | Count2
A | 1 | 2
B | 23 | 2
C | 1 | 23
D | 5 | 23
Я пробовал ниже, но он сохраняет только последнюю запись в моем списке.
writer = pd.ExcelWriter('demo.xlsx', engine='xlsxwriter')
start_row = 0
for i, data in enumerate(mylist):
df = pd.DataFrame({"Name": [data[0]],
"Count1": [data[1][0]],
"Count2": [data[1][1]]})
df.to_excel(writer, sheet_name='Sheet1',header=True, index=False)
writer.save()
Может ли кто-нибудь дать какие-либо указатели?
Заранее спасибо и с праздником
Попробуйте следующий код:
Column_headers = ["Name", "Count1", "Count2"]
mylist = [('A',(1,2)), ('B',(23,2)), ('C',(1,23)), ('D',(5,23))]
df = pd.DataFrame([[i[0], i[1][0], i[1][1]] for i in mylist], columns=Column_headers)
df.to_excel('demo.xlsx')
@omz С удовольствием :-)
Вы можете использовать itertools.chain.from_iterable
здесь
from itertools import chain
df = pd.DataFrame(map(chain.from_iterable, mylist), columns=Column_headers)
Name Count1 Count2
0 A 1 2
1 B 23 2
2 C 1 23
3 D 5 23
Большое спасибо за это. Мне пришлось сделать - df.to_excel(writer), чтобы сохранить вывод в Excel. Фрейм данных распечатался именно так, как я хотел.