Найдите строки в одном фрейме данных на основе критериев из другого фрейма данных - PullRequest
0 голосов
/ 04 июля 2018

Я создал два кадра данных из основного кадра данных, например, df1 и df2.

Каждый кадр данных имеет одинаковое количество столбцов, но ни одна из строк в df2 не будет меньше, чем в df1. Фрейм данных будет иметь столбцы waferlot, x, y, w.

Как найти вафлот, x, y, w из df2 в df1.

1 Ответ

0 голосов
/ 04 июля 2018

Хотя для этого может быть несколько способов, один из которых был упомянут в комментариях, но я обычно делаю это, используя isin :

Учитывая два кадра данных:

import pandas as pd

df1 = pd.DataFrame()
df1['C1'] = ['a', 'b', 'c', 'd', 'e', 'f']
df1['C2'] = ['b', 'c', 'x', 'w', 'h', 'j']
df2 = pd.DataFrame()
df2 ['C1'] = ['x', 'a', 'c', 'f']
df2 ['C2'] = ['w', 'h', 'd', 'j']

Фреймы данных выглядят так:

In [144]: df1
Out[144]:
  C1 C2
0  a  b
1  b  c
2  c  x
3  d  w
4  e  h
5  f  j

In [145]: df2
Out[145]:
  C1 C2
0  x  w
1  a  h
2  c  d
3  f  j

Теперь я могу использовать isin для поиска всего, что я хочу, во всех столбцах кадра данных.

x = (df1[df1.C1.isin(df2.C1) & df1.C2.isin(df2.C2)])

Выход:

  C1 C2
5  f  j

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

x = (df1[df1.C1.isin(df2.C1)])

Выход:

  C1 C2
0  a  b
2  c  x
5  f  j
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...