Как я могу сравнить DataFrame с другими столбцами DataFrame? - PullRequest
0 голосов
/ 06 мая 2018

У меня есть два разных DataFrame. df является полным, а sample для сравнения. Вот данные, которые у меня есть:

sample.tail()
   T1  C   C1   C2   C3
0   1  5  0.0  7.0  5.0

df.tail()
   T1  T2  C   C1   C2   C3
0   1   0  5  4.0  6.0  6.0
1   0   0  5  5.0  4.0  6.0
2   0   1  7  5.0  5.0  4.0
3   1   1  0  7.0  5.0  5.0
4   1   1  5  0.0  7.0  5.0

Я выбрал несколько столбцов из sample df и пытаюсь найти значения в df, совпадающих с sample

Вот что я сделал, но не повезло:

cols = sample.columns
df = df[df[cols] == sample[cols]]

и я получаю следующую ошибку:

ValueError: может сравнивать только идентично помеченные объекты DataFrame

Не могли бы вы помочь мне найти решение для этого?

РЕДАКТИРОВАТЬ: Ожидаемый результат

df.tail()
   T1  T2  C   C1   C2   C3
0   1   0  5  0.0  7.0  5.0
21  1   1  5  0.0  7.0  5.0
27  1   0  5  0.0  7.0  5.0
34  1   1  5  0.0  7.0  5.0
42  1   1  5  0.0  7.0  5.0
47  1   0  5  0.0  7.0  5.0
51  1   1  5  0.0  7.0  5.0

Вы видите, что все данные совпадают с образцом данных, кроме T2. Это ожидаемый выход для меня

Спасибо

1 Ответ

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

Используя pd.Index.intersection, вы можете использовать

cols = sample.columns.intersection(df.columns)
df[df[cols].apply(tuple, axis=1).isin(sample[cols].apply(tuple, axis=1))]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...