Цикл по нескольким столбцам в функции для Python - PullRequest
0 голосов
/ 14 мая 2019

Я пытаюсь написать функцию для циклического прохождения 2 наборов из нескольких столбцов, как показано ниже в моем коде.

Однако функции, которые я написал, позволяют мне проходить через 1 столбец из каждого набора ввремя.

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

В частности, яищем возможности объединить функции 1,2 и 3 в одну функцию, если это возможно.

В противном случае, любое альтернативное решение действительно ценится!Я попытался выполнить поиск в Интернете, но я не нашел подобных решений моей проблемы!

#1st set of columns to loop through
 col1='revenue'
 col2='manpower'
 col3='others'


#2nd set of columns to loop through
 target1='alt_rev'
 target2='alt_man'
 target3='alt_oth'



#function 1 to loop through 1 column from each set with con_var as condition
def revised_rev (row):
>>if row['con_var'] == 1 :
  return row[col1]
>>>if row['con_var'] != 1 :
  return row[target1]
>>>>return None

df['new_rev'] = df.apply (lambda row: revised_rev(row), axis=1)


###function 2 to loop through 1 column from each set with con_var as condition
def revised_man (row):
>>if row['con_var'] == 1 :
  return row[col2]
>>>if row['con_var'] != 1 :
  return row[target2]
>>>>return None

df['new_man'] = df.apply (lambda row: revised_man(row), axis=1)


#function 3 to loop through 1 column from each set with con_var as condition
def revised_oth (row):
>>if row['con_var'] == 1 :
  return row[col3]
>>>if row['con_var'] != 1 :
  return row[target3]
>>>>return None

df['new_oth'] = df.apply (lambda row: revised_oth(row), axis=1)


#- my output after running through function1
#see"https://i.imgur.com/tZh9Us0.png" for image
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...