pandasの使い方(4)ファイルの読み込み
pandasを利用したファイルの読み込みについて。
HTMLの表組み(TABLE)をDataFrameオブジェクトのリストで取得。
Definition :
read_html(io, match='.+', flavor=None, header=None, index_col=None, skiprows=None, attrs=None, parse_dates=False, tupleize_cols=False, thousands=',', encoding=None, decimal='.', converters=None, na_values=None, keep_default_na=True)
○使用例1
ブログに百人一首のテストデータを用意しました。
# coding: utf-8 import pandas as pd url = 'http://python-remrin.hatenadiary.jp/entry/2017/04/23/000000' fetched = pd.io.html.read_html(url) # DataFrameのリスト print(len(fetched)) # 1 listの要素であるDataFrameが1個 d = fetched[0] # そのデータフレームをdに代入 l = list(d[1]) # 1の列を抽出してリスト化 print(l[0]) # あきのたの かりほのいほの ... print(len(l)) # 100...100首 string = "\n".join(l) # 改行コードでつなぐ with open("hyaku.txt", "w") as f: # w:上書きモード f.write(string) # 書き込めるのは文字列型のみ
○使用例2
アンスコムの例
url = 'http://python-remrin.hatenadiary.jp/entry/2017/04/23/000000_1' fetched = pd.io.html.read_html(url) # DataFrameのリスト print(len(fetched)) # 1 listの要素であるDataFrameの個数 print(fetched[0]) df = fetched[0] # 2次元リスト化 data = [] for i in range(len(df)): x = [] for j in range(len(df.iloc[0])): x.append(df.iloc[i, j]) data.append(x) print(data) # hatena表組み化 for i in range(len(df)): s = "|" for j in range(len(df.iloc[0])): s += str(df.iloc[i, j]) + "|" print(s)
○csvファイルの読み込み
以下の内容のtest.csvを準備して
1,20 2,30 3,40 4,50
「20」の列だけを読み取る
import pandas csv = pandas.read_csv('test.csv') print(csv["20"]) # 0 30 # 1 40 # 2 50 # Name: 20, dtype: int64
詳しい使い方はもう少し調べてから。
参考:
・HTML の表 (tableタグ) をスクレイピングする時も pandas が超便利
・アンスコムの例 - Wikipedia