Я хочу отсортировать ежедневные доходы американских компаний, которые имели кредитные рейтинги в течение 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, спасибо!