У меня есть один фрейм данных, который загружает центральный файл. Новые файлы ежемесячно обновляются здесь. Поскольку в файле, который копируется во фрейм данных, отсутствует несколько пропущенных столбцов, я создал отображающий фрейм данных, который добавляет значения к фрейму данных при выполнении условия для пропущенных столбцов.
Ниже приведен пример центрального файла:
ID Region Country Code User Order Price
1 Germany ABC 2342545
2 Italy DEF 5464545
3 USA GHI 3245325
4 India JKL 676565
5 Mexico MNO 3443252
6 China PQR 565445
7 Germany STU 765765
8 Mexico VWX 564566
9 China YZA 346534
10 India BCD 5675765
Это мой файл сопоставления для отсутствующего региона и кода
Country Region Code
Germany EU 1
Italy EU 2
USA America 3
India Asia 4
Mexico America 5
China Asia 6
Вот ожидаемый результат:
ID Region Country Code User Order Price
1 EU Germany 1 ABC 2342545
2 EU Italy 2 DEF 5464545
3 America USA 3 GHI 3245325
4 Asia India 4 JKL 676565
5 America Mexico 5 MNO 3443252
6 Asia China 6 PQR 565445
7 EU Germany 2 STU 765765
8 America Mexico 5 VWX 564566
9 Asia China 6 YZA 346534
10 Asia India 4 BCD 5675765
Что я сделал, это использовал для циклов с iterrows () для обновления значений во фрейме данных.
Проблема в том, что это очень медленно и для обновления около 60 000 записей требуется около часа или более.
вот мой код:
for central_update_index, central_update_row in central_bridge_file.iterrows():
print('index: ', central_update_index)
for bridge_match_index, bridge_match_row in central_bridge_matching_file.iterrows():
if bridge_match_row['Country'] == central_update_row['Country']:
if central_update_row['Country / Company (P2)'] == bridge_match_row['Country']:
central_bridge_file.loc[central_update_index, 'Code'] = \
bridge_match_row['Code']
central_bridge_file.loc[central_update_index, 'Region'] = bridge_match_row[
'Region']
Может кто-нибудь помочь мне в том, как я могу написать лямбда-оператор или что-то, что может сделать это в течение нескольких минут?