#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 — это проголосовать 🙂