Как повысить python эффективность при обработке миллиардов данных - PullRequest
0 голосов
/ 21 апреля 2020

Я хочу отсортировать ежедневные доходы американских компаний, которые имели кредитные рейтинги в течение 2019 года. Вот мои пакеты данных: ретроспектива, упомянутая в кодах, - это пакет данных о ежедневных доходах всех американских компаний за 2019 год, в нем 1,9 миллиона строк данных. Rating_clean - это пакет данных о кредитных рейтингах американских компаний. Здесь cusip8 / CUSIP - это индекс для совпадения во время двух пакетов данных, и мои коды выглядят следующим образом:

import pandas as pd
comp=pd.read_csv(r'C:\Users\luoyu\Desktop\comp.csv',dtype='unicode')
ret=pd.read_csv(r'C:\Users\luoyu\Desktop\ret.csv',dtype='unicode')
rating=pd.read_csv(r'C:\Users\luoyu\Desktop\rating_clean.csv',dtype='unicode')

b1=[]
b2=[]
b3=[]
b4=[]
for i in range(len(rating.cusip8)):
    for t in range(len(ret.CUSIP)):
        a=rating.cusip8[i]
        if a in ret.CUSIP[t]:
            date_ret=ret.date[t]
            cusip_ret=ret.CUSIP[t]
            return_ret=ret.RET[t]
            SPR_ret=ret.sprtrn[t]
            b1.append(date_ret)
            b2.append(cusip_ret)
            b3.append(return_ret)
            b4.append(SPR_ret)

output=pd.DataFrame(columns=['date','cusip','return','SPR'])
output['date']=b1
output['cusip']=b2
output['return']=b3
output['SPR']=b4
output.to_csv(r'C:\Users\luoyu\Desktop\output.csv')

На самом деле это простые коды l oop, но эффективность неудовлетворительная. Сначала я использовал spyder для запуска этого кода в течение 3 часов, и он все еще находился в процессе. Затем я использовал блокнот jupyter и создал 5 блокнотов для одновременного выполнения кодов (всего более 1800 данных, поэтому каждый блокнот обрабатывал 360 данных). И через 13 часов он все равно не дал результатов. Я был очень расстроен, и я думал, что сами коды не были неправильными. Потому что, когда я устанавливаю len (rating.cusip8) = 1,3,5, коды могут запускаться и выводиться. Пожалуйста, помогите мне улучшить мои коды и эффективность python, спасибо!

...