Исходя из представленных вами образцов данных, я думаю, что вы пытаетесь добиться декодирования однократных закодированных данных (методика classi c для преобразования категориальных данных в числовые данные в машинном обучении).
Вот код для достижения декодирования:
import pandas as pd
d = {'Main': [0,0,0,0], 'col2': ['Big','','',0], 'col3': [0,'Medium',0,''], 'col4': ['','','Small',''], 'col5':['',0,'','Vsmall']}
df = pd.DataFrame(data=d)
def reduce_function(row):
for col in ['col2','col3','col4','col5']:
if not pd.isnull(row[col]) and row[col] != 0 and row[col] != '':
return row[col]
df['Main']=df.apply(reduce_function, axis=1)
Примечание. Всегда учитывайте использование сокращений (т. Е. apply()
) для кадров данных, а не итераций по строкам.