Найдите, где три отдельных DataFrame перекрываются, и создайте новый DataFrame. - PullRequest
0 голосов
/ 31 января 2020

У меня есть три отдельных кадра данных. Каждый DataFrame имеет одинаковые столбцы - ['Email', 'Rating']. Во всех трех фреймах данных для столбца Email имеются повторяющиеся значения строк. Я пытаюсь найти те электронные письма, которые появляются во всех трех DataFrames, а затем создать новый DataFrame на основе этих строк. До сих пор у меня были все три DataFrames, сохраненные в список, подобный этому dfs = [df1, df2, df3], и затем объединили их вместе, используя df = pd.concat(dfs). Я пытался использовать групповой отсюда, но безрезультатно. Любая помощь будет принята с благодарностью

Ответы [ 2 ]

1 голос
/ 31 января 2020

Вы хотите сделать слияние. Подобно объединению в sql, вы можете выполнить внутреннее слияние и рассматривать письмо как внешний ключ. Вот документы: https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.merge.html Это будет выглядеть примерно так:

in_common = pd.merge(df1, df2, on=['Email'], how='inner')

0 голосов
/ 31 января 2020

вы можете попытаться использовать .isin из pandas, например:

df[df['Email'].isin(df2['Email'])]

Это позволит получить записи строк, в которых значения для столбца электронной почты совпадают в двух данных.

Другая идея, может быть, попробовать внутреннее слияние.

Goodluck, в следующий раз отправьте код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...