У меня есть два фрейма данных. Вот такие заголовки: я хочу удалить строки из df2, которые не содержат названия компаний df1 (подстроки). Как мне это сделать? заранее спасибо

-1
KawaiKx 10 Апр 2021 в 08:51

3 ответа

Лучший ответ

Вы можете проверить .str.count() из df1.COMPANY подстрок в df2.COMPANY для создания логической маски:

mask = df2.COMPANY.str.count('|'.join(df1.COMPANY.values)).astype(bool)
df2 = df2[mask]
1
tdy 10 Апр 2021 в 06:14

Похоже, вы хотите внутренне присоединиться к фреймам данных:

pd.merge(df1, df2, on='COMPANY', how='inner')

Пожалуйста, проверьте документацию здесь для слияния: https://pandas.pydata.org/ pandas-docs / stable / reference / api / pandas.DataFrame.merge.html.

0
SequenceToSequence 10 Апр 2021 в 06:01
#extarct unique company list from 1st dataframe

company_list = set(df1['company'].to_list())

#fucntion to check if any unique string is present or not 
def test_presnce(x,company_list):
    return(any(value for value in company_list if value in x))

#company_present column can now be used to filter the required data
df2['company_present'] = df2['company'].apply(test_presnce, args=(company_list,))
0
Prakhar Gupta 10 Апр 2021 в 06:18