добавить выбранные столбцы из двух панд dfs - PullRequest
0 голосов
/ 03 мая 2018

У меня есть два кадра данных панд: a_df и b_df. a_df имеет идентификатор столбца, atext и var1-var25, а b_df имеет идентификатор столбца, atext и var1-var 25.

Я хочу добавить ТОЛЬКО соответствующие переменные из a_df и b_df и оставить идентификатор и только atext.

Код ниже добавляет ВСЕ соответствующие столбцы. Есть ли способ заставить его добавить только интересующие столбцы?

absum_df=a_df.add(b_df)

Что я мог сделать, чтобы достичь этого?

Ответы [ 2 ]

0 голосов
/ 03 мая 2018

Вы можете установить подкадр данных для определенных столбцов:

var_columns = ['var-{}'.format(i) for i in range(1,26)]
absum_df=a_df[var_columns].add(b_df[var_columns])

Обратите внимание, что это приведет к созданию кадра данных только с столбцами var. Если вам нужен фрейм данных со столбцами без var из a_df, а столбцы var, являющиеся суммой a_df и b_df, вы можете сделать

absum_df = a_df.copy()
absum_df[var_columns] = a_df[var_columns].add(b_df[var_columns])
0 голосов
/ 03 мая 2018

Использование filter:

absum_df = a_df.filter(like='var').add(b_df.filter(like='var'))

Если вы хотите сохранить дополнительные столбцы как есть, используйте concat после суммирования:

absum_df = pd.concat([a_df[['ID', 'atext']], absum_df], axis=1)

В качестве альтернативы, вместо выбора столбцов из a_df, можно вместо этого просто отбросить столбцы в absum_df, если вы хотите добавить все столбцы из a_df, а не в absum_df:

absum_df = pd.concat([a_df.drop(absum_df.columns axis=1), absum_df], axis=1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...