本当はエクセルに1列で格納したいんですが、うまい方法を教えてください。
真似しながらやってるので、以下のようにコーディングしています。
python
1# このリストに格納していく 2post_address = [] 3other = [] 4 5# 郵便番号と住所を格納 6for k,v in enumerate(address_list): 7 8 if k % 2 == 0: 9 post_address.append(v.get_text().replace(" ","")) 10 else: 11 other.append(v.get_text().replace(" ","")) 12 13df = pd.DataFrame({'住所':post_address,'その他':other})
これだと当然2列になります。
下のやつを1列に入れたいんです。
###コマンドプロンプト
C:\test2>python sub0322.py 〒206-0032東京都多摩市南野2-31-7 〒192-0355東京都八王子市堀之内3-3-19 〒206-0812東京都稲城市矢野口1633-1 〒206-0824東京都稲城市若葉台1-55アクロスプラザ若葉台イースト 〒194-0021東京都町田市中町2-17-20 〒191-0003東京都日野市日野台2-41-5 〒193-0832東京都八王子市散田町5-9-8 〒192-0351東京都八王子市東中野11-14 〒192-0914東京都八王子市片倉町484-1 〒194-0044東京都町田市成瀬8-2-6 〒242-0003神奈川県大和市林間1-15-28 〒252-0211神奈川県相模原市中央区宮下本町2-27-20 〒243-0436神奈川県海老名市扇町1-1 〒252-0803神奈川県相模原市南区相模大野3-1-7エピカビルB1 〒243-0303神奈川県愛甲郡愛川町中津724 〒246-0021神奈川県横浜市瀬谷区二ツ橋町309-1 〒252-0143神奈川県相模原市緑区橋本8-2-1 ラ・フロール別館内 〒252-0234神奈川県相模原市中央区共和3-7-9 〒252-1136神奈川県綾瀬市寺尾西3-6-1 〒242-0015神奈川県大和市下和田778 〒252-0226神奈川県相模原市中央区陽光台5-5-2 〒252-0001神奈川県座間市相模が丘4-2-45
###全文
python
1# 必要なモジュールのインポート 2from bs4 import BeautifulSoup 3import urllib.error,os 4import urllib.request 5import time,datetime 6import pandas as pd 7import numpy as np 8import openpyxl 9 10# 店舗ごとのURLの番号 11shop_list = ['01','02','03','04','05','06','07','08','09','10','11','12','13','14','15','16','17','18','19','20','21','22'] 12 13# 共通のURL 14url_list = ['https://www.y-minmin.com/shop#a{0}'.format(shop) for shop in shop_list] 15 16# おまじないと思っておく。OSごとに異なる。 17ua = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100' 18 19 20req = urllib.request.Request(url_list[0], headers={'User-Agent':ua}) 21html = urllib.request.urlopen(req) 22 23soup = BeautifulSoup(html,("html.parser")) 24 25# 対象のページのHTMLから郵便番号と住所を抽出して取得 26address_list = soup.select('.table-default tr:nth-child(1) td') 27 28for k,v in enumerate(address_list): 29 print(v.get_text().replace(" ","")) 30 31# このリストに格納していく 32post_address = [] 33other = [] 34 35# 郵便番号と住所を格納 36for k,v in enumerate(address_list): 37 38 if k % 2 == 0: 39 post_address.append(v.get_text().replace(" ","")) 40 else: 41 other.append(v.get_text().replace(" ","")) 42 43df = pd.DataFrame({'住所':post_address,'その他':other}) 44 45# 取得したデータからExcelファイルを生成 46df.to_excel('Minmin_Address.xlsx',encoding='shift_jis',index=False) 47
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。