Добавить только соответствующие столбцы в dataframe - PullRequest
0 голосов
/ 05 апреля 2019

У меня есть своего рода «главный» фрейм данных, к которому я хотел бы добавить только соответствующие столбцы из другого фрейма данных к

df:
  A  B  C
  1  2  3

df_to_append:
  A  B  C  D  E
  6  7  8  9  0

Проблема в том, что когда я использую df.append(), он также добавляет несогласованные столбцы к df.

df = df.append(df_to_append, ignore_index=True)
Out:
A  B  C   D   E
1  2  3  NaN NaN
6  7  8   9   0

Но мой желаемый вывод - отбросить столбцы D и E, поскольку они не являются частью исходного кадра данных? Возможно, мне нужно использовать pd.concat? Я не думаю, что смогу использовать pd.merge, поскольку у меня нет ничего уникального для слияния.

Ответы [ 3 ]

3 голосов
/ 05 апреля 2019

Использование concat join='inner

pd.concat([df,df_to_append],join='inner')
Out[162]: 
   A  B  C
0  1  2  3
0  6  7  8
2 голосов
/ 05 апреля 2019

Просто выберите столбцы, общие для обоих df s:

df.append(df_to_append[df.columns], ignore_index=True)

1 голос
/ 05 апреля 2019

Простейшим способом было бы получить список столбцов, общих для обоих кадров данных, используя df.columns, но если вы не знаете, что все исходные столбцы включены в df_to_append, то вам нужно найти пересечениеиз двух комплектов:

cols = list(set(df.columns) & set(df_to_append.columns)) 
df.append(df_to_append[cols], ignore_index=True)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...