html
1 保有数量 取得単価 現在値 外貨建評価損益 カテゴリー 20 VEA?バンガード FTSE先進国市場(除く米国) ETF VEA?バンガード FTSE先進国市場(除く米国) ETF 現買 現売 定期 現買 現売 定期 31 35 34.54 41.29 236.25 42 VTI?バンガード トータルストックマーケットETF VTI?バンガード トータルストックマーケットETF 現買 現売 定期 現買 現売 定期 53 8 142.79 168.9 208.88 64 VWO?バンガード FTSEエマージングマーケッツETF VWO?バンガード FTSEエマージングマーケッツETF 現買 現売 定期 現買 現売 定期 75 13 35.3 43.27 103.61 8
上記のようなデータフレームを取得したあとに
・商品列を作って、偶数行に存在するVEAなどに置き換えることはできのでしょうか?df_data['商品名'] = shouhin
・その上でVEAなどが記載されている偶数行は削除したいです。
目標
html
1 保有数量 取得単価 現在値 外貨建評価損益 商品名 2 3(1) 35 34.54 41.29 236.25 VEA 4 5(3) 8 142.79 168.9 208.88 VTI 6 7(5) 13 35.3 43.27 103.61 VWO 8
html
1# SBIにログイン 2def connect_sbi(ACCOUNT, PASSWORD, name): 3 4 driver = webdriver.Chrome(executable_path=DRIVER_PATH, chrome_options=options) 5 driver.implicitly_wait(1) 6 7 # SBI証券のトップ画面を開く 8 driver.get('https://www.sbisec.co.jp/ETGate') 9 10 # ユーザーIDとパスワード 11 input_user_id = driver.find_element_by_name('user_id') 12 input_user_id.send_keys(ACCOUNT) 13 input_user_password = driver.find_element_by_name('user_password') 14 input_user_password.send_keys(PASSWORD) 15 16 # ログインボタンをクリック 17 driver.find_element_by_name('ACT_login').click() 18 19 return driver 20 21# 取得株の取得。 22def get_ja_data(driver): 23 # 遷移するまで待つ 24 time.sleep(4) 25 26 # ポートフォリオの画面に遷移 27 driver.find_element_by_xpath('//*[@id="link02M"]/ul/li[3]/a/img').click() 28 driver.find_element_by_xpath('//*[@id="navi02P"]/ul/li[2]/div/a').click() 29 30 31 # 文字コードをUTF-8に変換 32 html = driver.page_source.encode('utf-8') 33 34 # BeautifulSoupでパース 35 soup = BeautifulSoup(html, "html.parser") 36 37 # 株式 38 table_data = soup.find_all("table", cellpadding="1", cellspacing="1", width="100%") 39 40 # 米国株式(現物/特定預り) 41 df_stock_specific = pd.read_html(str(table_data), header=0)[0] 42 df_stock_specific = format_data(df_stock_specific, '', '') 43 df_ja_result = df_stock_specific 44 #df_ja_result['Totalamount'] = df_ja_result['保有数量'] * df_ja_result['現在値'] 45 46 return df_ja_result 47 48def format_data(df_data, category, fund): 49 # 必要な列のみ抽出 50 df_data = df_data.loc[:, ['保有数量', '取得単価', '現在値', '外貨建評価損益']] 51 if category != '': 52 df_data['カテゴリー'] = category 53 if fund != '': 54 df_data['ファンド名'] = fund 55 56 return df_data
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/14 02:07