Как настроить заголовок перед печатью выходных данных в цикле for в python?

#python #python-3.x #pandas #python-2.7

#python #python-3.x #pandas #python-2.7

Вопрос:

У меня есть 4 df в list1 :

df1 df2 df3 df4

Каждый фрейм данных в list1 входит в цикл for и предоставляет один вывод, но перед печатью вывода я хочу, чтобы был указан заголовок, чтобы я мог определить, к какой группе принадлежит вывод. т. Е. Относится ли он к high, low, medium или average

list2 содержит все заголовки, которые необходимо указать для 4 выходных данных. list2 = ["High","Medium","Low","Average"]

Пример:

      Before df1 output is printed i wanted the heading to be 'High'

     Before df2 output is printed i wanted the heading to be 'Medium'

     Before df3 output is printed i want the heading to be printed as 'Low'

     Before df4 output is printed i want the heading to be printed as 'Average'
  

Ниже приведен мой код:

 import os
os.chdir(r'C:Users91979Downloadshead codesrc')
from classStruct.model import model
list1 = [df1,df2,df3,df4]
list2 = ["High","Medium","Low", "Average"]
for i in list1:
    needed_cols = i.columns
    target_col =  ['Rejection (%)']
    cols = list(set(needed_cols) - set(target_col))
    totData = i
    totData = totData.round(decimals=2)
    Model1 = model(totData,cols,['Rejection (%)'])
    clustSet = pd.DataFrame([C.clusterCenter for C in Model1.clustersList])
    Model1.predictor(clustSet, ["Rejection (%)"], Normalize=False)
    Model1.optimalClusterRejectionSeries = round(min(clustSet['Rejection (%)Predicted']),4)
    col_list = ['GCS (kg/cm2)', 'Inert Fines (%)', 'Volatile Matter (%)',
       'LOI (%)', 'Active Clay (%)', 'GFN/AFS (no)', 'Compactability (%)',
       'Wet Tensile Strength (gm/cm2)', 'Moisture (%)',
       'Permeability (no)', 'Temp. of Sand after mix.(C)']
    Model1.deNormalizeColumns(col_list, clustSet).to_csv("Predicted_optimal.csv")
    Model1.deNormalizeColumns(col_list, clustSet)

    
    for j in list2:
        print(j)
    print(pd.DataFrame(clustSet[clustSet['Rejection (%)Predicted'] == clustSet['Rejection (%)Predicted'].min()]))
    print('n')
    print('n')
  

В какой части кода я должен напечатать свои заголовки list2 , чтобы я получил правильные 4 итерации с правильными заголовками.

Ответ №1:

Вы можете использовать zip:

 list1 = [df1,df2,df3,df4]
list2 = ["High","Medium","Low", "Average"]
for i, j in zip(list1, list2):
    print('Before output is printed i wanted the heading to be %s' % j)
    print('This is the dataframe %s' % i)
  

И затем вы можете распечатать свой фрейм данных i позже в цикле после печати заголовка.

пример вывода заголовка:

 Before output is printed i wanted the heading to be High
This is the data frame df1
Before output is printed i wanted the heading to be Medium
This is the data frame df2
Before output is printed i wanted the heading to be Low
This is the data frame df3
Before output is printed i wanted the heading to be Average
This is the data frame df4
  

Комментарии:

1. большое вам спасибо. Это сработало 🙂 спасибо за ваше время

2. @Thanuja Добро пожаловать. Лучший способ поблагодарить за SO — это проголосовать 🙂