У меня есть список имен столбцов (cols
), которые существуют в одном кадре данных.
Я хочу вставить столбцы с этими именами в другом кадре данных.
Поэтому я используюцикл for
для итерации списка и создания столбцов один за другим:
cols = ['DEPTID', 'ACCOUNT', 'JRNL LINE DESCRIPTION', 'JRNL DATE', 'BASE AMOUNT', 'FOREIGN CURRENCY', 'FOREIGN AMOUNT', 'JRNL SOURCE']
for col in cols:
# "summary" and "obiee" are dataframes
summary.loc[obiee['mapid'], col] = obiee[col].tolist()
Однако я бы хотел избавиться от цикла for
.
Итак, у меня естьпопытался назначить несколько столбцов с использованием синтаксиса .loc
:
cols = ['DEPTID', 'ACCOUNT', 'JRNL LINE DESCRIPTION', 'JRNL DATE', 'BASE AMOUNT', 'FOREIGN CURRENCY', 'FOREIGN AMOUNT', 'JRNL SOURCE']
summary.loc[obiee['mapid'], cols] = obiee[cols]
, но Pandas выдаст ошибку:
KeyError: "['DEPTID' 'ACCOUNT' 'JRNL LINE DESCRIPTION' 'JRNL DATE' 'BASE AMOUNT'\n 'FOREIGN CURRENCY' 'FOREIGN AMOUNT' 'JRNL SOURCE'] not in index"
Разве это невозможно с этим синтаксисом? Как я могу сделать это иначе?