Панды Добавить список в новый столбец или добавить в конце - PullRequest
0 голосов
/ 05 марта 2019

Я добавляю новые списки в столбец данных панд.Поскольку я делаю это в цикле, я хочу сначала создать новый столбец и поместить некоторые значения в этом столбце.Затем поверх другого цикла я добавляю новые значения в только что созданный столбец.Как я могу это сделать?

У меня есть список python с именем all_material_percentages

All Material Percentages:
[0.660377358490566, 0.34285714285714286, ... 1.5151515151515151, 1.12, 0.5892857142857143]
>>> len(all_material_percentages)
48
>>> len(total_parameter_number)
2
>>> len(total_year_number)
2
>>> print(input_material_name)
['Cold Sheet Iron', 'Hot Sheet Iron']  

Моя пробная версия:

for i in range(total_parameter_number):
    for j in range(total_year_number):        
        output[input_material_name[i]) = pd.Series(all_material_percentages[i*12+(12*j*total_parameter_number):(i*12)+12+(12*j*total_parameter_number)]) 

Затем я записываю вывод вфайл Excel: вывод Excel

Мне известно о проблеме, заключающейся в том, что вывод (input_material_name [i]) перезаписывается, но я не знаю, как решить эту проблему.Я попытался добавить, вставить функции, но я не смог найти способ сделать это.

1 Ответ

0 голосов
/ 06 марта 2019

Ниже приведен более питонический способ сделать это:

import pandas as pd

# first initialize your data frame with the columns
# columns with empty data has been initialized, now you can just add data to it 
df = pd.DataFrame(columns=input_material_name)

# to avoid any confusion I would advise you to first build the list of data for your different columns and at the end just add it to the dataframe

# here 'i' is the index returned by enumerate 
for i, column in enumerate(df.columns):
    for j in range(total_year_number):        
        df[column] = all_material_percentages[i*12+(12*j*total_parameter_number):(i*12)+12+(12*j*total_parameter_number)])

# for writing to excel file
df.to_excel('file.xls')

Надеюсь, это поможет.Дайте мне знать, если я что-то пропустил или вы хотите сделать что-то другое.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...