Соедините 2 кадра данных Pandas по конкретным столбцам с учетом нан - PullRequest
0 голосов
/ 23 ноября 2018

У меня есть 2 панды DataFrames dfA и dfB с X и Y столбцами и строками.

Мне нужно добавить dfB на dfA, создав dfC.Мне нужно, чтобы добавление было в столбцах с именами столбцов в dfA и dfB.

Более того, если имя столбца в dfA не отображается в dfB, то dfC должно содержать значения Nan.


Чтобы упростить,

dfA выглядит,

    c1   c2   c3
0  AX1  AX2  AX3
1  AY1  AY2  AY3
2  AZ1  AZ2  AZ3

, а dfB выглядит,

    c1   c2   c4
0  BX1  BX2  BX3
1  BY1  BY2  BY3
2  BZ1  BZ2  BZ3

, напримерчто dfC должно выглядеть,

    c1   c2   c3
0  AX1  AX2  AX3
1  AY1  AY2  AY3
2  AZ1  AZ2  AZ3
3  BX1  BX2  Nan
4  BY1  BY2  Nan
5  BZ1  BZ2  Nan     

Как мне это сделать?

Ответы [ 2 ]

0 голосов
/ 23 ноября 2018

Используйте concat и фильтруйте столбцы dfA:

df = pd.concat([dfA, dfB])[dfA.columns]

Или фильтруйте столбцы по intersection:

cols = dfA.columns.intersection(dfB.columns)
df = pd.concat([dfA, dfB[cols]])
0 голосов
/ 23 ноября 2018

попробуйте это,

pd.concat([dfA,dfB[['c1','c2']]])

Чтобы избежать жесткого кодирования столбцов

попробуйте это,

inter=list(set(dfA.columns)&set(dfB.columns))
print pd.concat([dfA,dfB[inter]])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...