###前提・実現したいこと
Python初心者で勉強中です。サンプルの行き先表示板を題材にして「名前」「更新(時刻)」「行き先」を取り込み、DBへ格納することを実現しようとしています。
※実際に会社で運用して勤怠に使おうかと考えています。
取得したデータ
[ 0 1 2 3 4 5 6
0 名前 更新 行き先 NaN 名前 更新 行き先
1 Main Staff NaN ボーマ 09:42 NaN NaN NaN
2 荒巻大輔 22:09 課長室 NaN パズ 15:50 張り込み
3 草薙素子 21:16 uuu NaN アズマ 12:00 聞き込み
4 バトー 11:58 帰宅 NaN Support Staff NaN NaN
5 トグサ 22:09 mDSMwkgsGTh NaN プロト 23:26 ラボ
6 イシカワ 11:29 月末まで入院 NaN タチコマ 17:46 おでかけ
7 サイトー 23:26 在室 NaN オペ子 17:46 大阪]
を使って、必要な情報のみに加工しようとしたのですがことごとくエラーとなりました。以下の四工程をしたいのですが。。。
三列目を削除 soup.drop('3', axis=1) → ここでエラー 六列になったものを縦に三列で積み上げる それぞれの行で NaNが含まれている行は削除 それぞれの行で時刻には日付を付与する
いろいろ試みたのですが、行き詰ってしまいました。皆さんのお力お貸しください。よろしくお願い致します。
###発生している問題・エラーメッセージ
エラーメッセージ File "<ipython-input-52-fdc5e20d55af>", line 1, in <module> runfile('C:/Users/hase/出退テスト.py', wdir='C:/Users/〇〇') File "C:\ProgramData\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 880, in runfile execfile(filename, namespace) File "C:\ProgramData\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 102, in execfile exec(compile(f.read(), filename, 'exec'), namespace) File "C:/Users/〇〇/出退テスト.py", line 25, in <module> info = get_products('http://www.serina.org/cgi-bin/ikisaki/ikisaki.cgi/~achain/cgiroom/ikisaki/?rfsh=0&column=2') File "C:/Users/〇〇/出退テスト.py", line 20, in get_products soup.drop('3', axis=1) AttributeError: 'list' object has no attribute 'drop'
###該当のソースコード
Python
1 2# -*- coding: utf-8 -*- 3import pandas 4 5def get_products(category_url): 6 7 #Search url 8 #Get target_string 9 soup = pandas.io.html.read_html(category_url) 10 #soup.index = ['name','update','where','num','name','update','where'] 11 print(soup) 12 print("--------------------------") 13 14 #三列目を削除 15 soup.drop('3', axis=1) 16 #六列になったものを盾に三列で積み上げる 17 #それぞれの行で Nantが含まれている行は削除 18 #それぞれの行で時刻には日付を付与する 19 20info = get_products('http://www.serina.org/cgi-bin/ikisaki/ikisaki.cgi/~achain/cgiroom/ikisaki/?rfsh=0&column=2')
###試したこと
三列目を削除しようと
soup.drop('3', axis=1)
と記述したのですが、エラーがでました。
print(len(soup))
で取得したデータの行を確認したのですが、大きな一行となっているようで
1 と表示されました。 こんな感じです。
[ 0 1 2 3 4 5 6
0 名前 更新 行き先 NaN 名前 更新 行き先
1 Main Staff NaN ボーマ 09:42 NaN NaN NaN
2 荒巻大輔 22:09 課長室 NaN パズ 15:50 張り込み
3 草薙素子 21:16 uuu NaN アズマ 12:00 聞き込み
4 バトー 11:58 帰宅 NaN Support Staff NaN NaN
5 トグサ 22:09 mDSMwkgsGTh NaN プロト 23:26 ラボ
6 イシカワ 11:29 月末まで入院 NaN タチコマ 17:46 おでかけ
7 サイトー 23:26 在室 NaN オペ子 17:46 大阪]
soup.index = ['one', 'two', 'three']
soup.columns = ['a', 'b', 'c']
※実際は必要行数・列数分用意して実行してみましたがダメでした。
soup.index = ['name','update','where','num','name','update','where']
でも変更できませんでした。
###補足情報(言語/FW/ツール等のバージョンなど)
より詳細な情報
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/05/04 11:03