Анализировать данные с веб-сайта, сравнивать данные из csv и записывать данные в файл csv - PullRequest
0 голосов
/ 08 мая 2020

Я столкнулся с этой проблемой:

У меня есть файл sec_sic.csv с данными:

ticker  SIC
A   3826
AA  3334
AAL 4512
AAN 7359
AAP 5531

Мне нужно прочитать данные из sec_sic, чтобы сравнить SIC с SIC Code на веб-сайте (добавьте новые столбцы Office и Industry) и создайте новый файл SI C со всеми новыми данными

Я пробовал с этим кодом:

import pandas as pd
import requests
import csv

url = "https://www.sec.gov/info/edgar/siccodes.htm"

r = requests.get(url)
df_list = pd.read_html(r.text) # this parses all the tables in webpages to a list
df = df_list[0]
#df.set_index('SIC Code', inplace=True)
#print(df.head())
#print(df['Office'])
sic_num =0

base_df = pd.read_csv('sec_sic.csv')

with open("sec_sic_to_industry.csv", "w+", newline='',encoding='utf-8') as csvfile:
    writer = csv.writer(csvfile)
    writer.writerow(["ticker", "SIC","office", "industry"])
print("Num of SIC "+str(len(base_df['SIC'])))

while sic_num <= len(base_df['SIC']): #len(base_df['SIC'])




    #print(base_df['SIC'][0])

    filt = (base_df['SIC'][sic_num] == df['SIC Code'])#df['SIC Code']

    #print(df.loc[filt, ["Office", "Industry Title"]])

    one = df.loc[filt, "Office"]
    two = df.loc[filt, "Industry Title"]
    one_1 = one.to_string()
    two_1 = two.to_string()


    #print(base_df['SIC'][sic_num])
    one_2 = one_1.split(" ",1)[1]
    two_2 = two_1.split(" ",1)[1]
    SIC = base_df['SIC'][sic_num]
    ticker = base_df['ticker'][sic_num]


    with open("sec_sic_to_industry.csv", "a+",newline='', encoding='utf-8') as csvfile:

        writer = csv.writer(csvfile)
        writer.writerow([ticker,SIC,one_2, two_2])
    sic_num +=1

Но у меня проблема с текстом в последней колонке, иногда она не заполняется.

ticker  SIC office  industry
ALB 2821    Office of Life Sciences    PLASTIC MATERIALS, SYNTH RESINS & NONVULCAN EL...
ALGN    3842    Office of Life Sciences    ORTHOPEDIC, PROSTHETIC & SURGICAL APPLIANCES &...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...