Как создать столбец на основе двух других столбцов кадра данных?Python

Программы на Python
Anonymous
 Как создать столбец на основе двух других столбцов кадра данных?

Сообщение Anonymous »

У меня есть приложение kivy, и в какой-то момент кода фрейм данных pandas загружен из Excel, и мне удалось создать уже 2 столбца, заполненных логическими значениями.
Мне нужно создать третий столбец, содержимое которого зависит от логических значений созданных столбцов, но не удается запустить его.
Исходный фрейм данных не имеет конкретного заголовка и может иметь переменное количество столбцов, например:

Код: Выделить всё

index  0   1   2   keep_release   keep_truck
1      2   3   4   True           False
2      3   4   5   True           True
Я хотел бы получить результат:

Код: Выделить всё

index  0   1   2   keep_release   keep_truck   keep
1      2   3   4   True           False        False
2      3   4   5   True           True         True
Я попробовал 2 разных метода:

Код: Выделить всё

in
def check_truck_and_release_row(x):
return x['keep_release'] and x['keep_truck']

df_out = df_out.assign(keep = lambda x: x[['keep_release', 'keep_truck']].apply(check_truck_and_release_row, args =()))

out
Exception has occurred: KeyError       (note: full exception trace is shown but execution is paused at: check_truck_and_release_row)
'keep_release'
File "C:\Users\A0099652\Documents\Python\repo_git_PURE\filtering_pandas.py", line 1067, in check_truck_and_release_row (Current frame)
return x['keep_release'] and x['keep_truck']
~^^^^^^^^^^^^^^^^
File "C:\Users\A0099652\Documents\Python\repo_git_PURE\filtering_pandas.py", line 1075, in 
df_out = df_out.assign(keep = lambda x: x[['keep_release', 'keep_truck']].apply(check_truck_and_release_row, args =()))
File "C:\Users\A0099652\Documents\Python\repo_git_PURE\filtering_pandas.py", line 1075, in filter_trucks_from_df
df_out = df_out.assign(keep = lambda x: x[['keep_release', 'keep_truck']].apply(check_truck_and_release_row, args =()))
File "C:\Users\A0099652\Documents\Python\repo_git_PURE\main.py", line 3410, in load_truck_br
self.truck_filtered_df[self.release_status][0] = filtering_pandas.filter_trucks_from_df(self.excel_loaded_df[self.release_status][0], button.text)
File "C:\Users\A0099652\Documents\Python\repo_git_PURE\main.py", line 3538, in 
app.run()
KeyError: 'keep_release'

Код: Выделить всё

in
def check_truck_and_release_row(keep_release, keep_truck):
return keep_release and keep_truck

df_out['keep'] = df_out.apply(lambda x: check_truck_and_release_row(x['keep_release'], x['keep_truck']))

out
Exception has occurred: KeyError       (note: full exception trace is shown but execution is paused at: )
'keep_release'
File "C:\Users\A0099652\Documents\Python\repo_git_PURE\filtering_pandas.py", line 1076, in  (Current frame)
df_out['keep'] = df_out.apply(lambda x: check_truck_and_release_row(x['keep_release'], x['keep_truck']))
~^^^^^^^^^^^^^^^^
File "C:\Users\A0099652\Documents\Python\repo_git_PURE\filtering_pandas.py", line 1076, in filter_trucks_from_df
df_out['keep'] = df_out.apply(lambda x: check_truck_and_release_row(x['keep_release'], x['keep_truck']))
File "C:\Users\A0099652\Documents\Python\repo_git_PURE\main.py", line 3410, in load_truck_br
self.truck_filtered_df[self.release_status][0] = filtering_pandas.filter_trucks_from_df(self.excel_loaded_df[self.release_status][0], button.text)
File "C:\Users\A0099652\Documents\Python\repo_git_PURE\main.py", line 3538, in 
app.run()
KeyError: 'keep_release'
Кажется, ни один из них не работает и при каждом испытании выдает ошибку ключа.
Есть какие-нибудь подсказки, как я могу заставить это работать?
Спасибо.

Подробнее здесь: https://stackoverflow.com/questions/797 ... -dataframe

Вернуться в «Python»