Неправильная конкатенация столбцов в датафрейме

Есть код:

import pandas as pd


titles = ['Level', 'Hitpoints', 'Damage', 'Damage per second']
y = 1
x = 0
res = pd.DataFrame()

for x in range(len(titles)):
    if x==0:
        data = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13']
    if x==1:
        data = ['90', '99', '108', '119', '131', '144', '158', '173', '190', '209', '230', '252', '278']
    if x==2:
        data = ['40', '44', '48', '53', '58', '64', '70', '77', '84', '93', '102', '112', '123']
    if x==3:
        data = ['40\n', '44\n', '48\n', '53\n', '58\n', '64\n', '70\n', '77\n', '84\n', '93\n', '102\n', '112\n', '123\n']    
               
    for y in range(len(data)-1):
            res = res.append(pd.DataFrame([[data[y]]], columns = [titles[x]]), ignore_index=True)
            res.to_excel('Minions' + '_unstable_ch_test' + '.xlsx')

Данные выводятся так:

xlsx таблица

А хотелось бы так:

xlsx таблица

Заранее Спасибо


Ответы (1 шт):

Автор решения: strawdog

Вы чего-то нагородили у себя в коде, ей-богу. И excel здесь ни при чем, потому что у вас результирующий датафрейм уже "неправильный".

вместо

res = res.append(pd.DataFrame([[data[y]]], columns = [titles[x]]), ignore_index=True)

сделайте

res[titles[x]] = data

и вынесите

res.to_excel('Minions' + '_unstable_ch_test' + '.xlsx')

за пределы ваших циклов, чтобы зря файл по сто раз не писать. и все.

→ Ссылка