Удаление большого количества идентификаторов из большого кадра данных занимает много времени.Python

Программы на Python
Ответить
Anonymous
 Удаление большого количества идентификаторов из большого кадра данных занимает много времени.

Сообщение Anonymous »

У меня есть два кадра данных df1 и df2

Код: Выделить всё

print(df1.shape)
(1042009, 40)

print(df1.columns)
Index(['date_acte', 'transaction_id', 'amount', ...],
dtype='object')

print(df2.shape)
(734738, 37)

print(df2.columns)
Index(['date', 'transaction_id', 'amount', ...],
dtype='object')
Я хотел бы удалить уникальный идентификатор транзакции в df2 из df1 и сохранить остальное.
Я сделал следующее:

Код: Выделить всё

Filtre = list(df2.transaction_id.unique())
print(len(Filtre))
733465

noMatched = df1.loc[
(~df1['transaction_id'].str.contains('|'.join(Filtre), case=False, na=False))]
Моя проблема в том, что подготовка вывода noMatched занимает почти 5 часов. Интересно, есть ли более эффективный способ написать этот фрагмент кода. Можно ли получить результат менее чем за 5 часов?

Подробнее здесь: https://stackoverflow.com/questions/791 ... -long-time
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

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

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»