Есть ли функция для удаления (в df1) различных строк в двух df? - PullRequest
0 голосов
/ 23 февраля 2020

У меня есть два DataFrame с разной длиной. В df1 мне нужно сохранить только те строки df1, которые тоже есть в df2, и удалить все строки, которых нет в df1. Я использовал функцию ниже, которая находит разницу между 2 df, но я не смогу удалить все строки в df1.

df1[~(df1['F_Code'].isin(df2['Codice']))]

Ответы [ 2 ]

0 голосов
/ 23 февраля 2020

Похоже, вы хотите объединить два фрейма данных в столбцах с другим именем столбца. В этом случае это то, что вам нужно:

import pandas as pd

# Create Example data
df1 = pd.DataFrame({'F_Code': [1,2, 8], 'a': [3,4,5]})
df2 = pd.DataFrame({'Codice': [1,2,3], 'b': [1,2,5]})

df = pd.merge(df1, df2, how='inner', left_on='F_Code', 
              right_on='Codice').drop(columns=df2.columns)

результат:


    F_Code  a
0   1       3
1   2       4
0 голосов
/ 23 февраля 2020

Я думаю, что вы ищете эту команду:

pandas.merge(df,df2,how='inner')

вы можете узнать больше о pandas.merge здесь https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.merge.html.

Это очень похоже на ключевое слово SQL JOIN.

representation of sql join keyword

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