表形式のデータをクリップボードから読み込む方法です。
ExcelやWebページから手軽に表形式のデータを読み込むことができます。
pandasライブラリを利用します。
表形式のデータ
- Webページ
- 表計算ソフトのシート(Excel)
- CSVファイル
WebページやExcelのデータを、Pythonで加工することはよくあります。
seabornでグラフにすると、見栄えがグンと上がりますよね。
ただ、Webページのデータを使う前処理が、データのコピー、メモ帳に張り付け、名前を決める、保存する、ファイルを読み込む。とすると、6工程もあり大変です。
CSVファイルがファイルを読み込む1工程だけで簡単なように、クリップボードにコピーしたデータを直接読み込めば、かなり楽になります。
CSVファイルを読み込む方法は、下記に書いています。
>>【Python入門】CSVファイルをコード1行で読み込む方法
データの特徴
WebページやExcelからコピーしたデータの特徴は、データが空白で区切られていることです。
次の表組されたデータを、メモ帳にコピペしてみます。
左上の「材料」から右下の「40g」までを選択して、コピーします。
材料 | 数量 |
男爵いも | 2個 |
玉ねぎ | 1/4個 |
にんじん | 1/4本 |
リンゴ | 1/4個 |
干しぶどう | 40g |
メモ帳を開き、貼り付けてみます。

コピペしたデータは、確かに空白で区切られています。
文字コードは、UTF-8です。
クリップボードから読み込む方法(read_clipboard)
データをコピーすると、一時的にデータを保存できる場所(クリップボード)に保存されます。
ペースト(貼り付け)は、クリップボードに保存されたデータが張り付けられます。
pandasは、クリップボードからデータを読み込むことができますので、クリップボードにデータをコピーしてから、下記のコードを実行します。
In [1]: import pandas as pd
In [2]: df_web = pd.read_clipboard()
In [3]: df_web
Out[3]: 材料 数量
0 男爵いも 2個
1 玉ねぎ 1/4個
2 にんじん 1/4本
3 リンゴ 1/4個
4 干しぶどう 40g
In [1]: pandasが使えるようにする(ライブラリの読み込み)。
In [2]: df_webに、クリップボードに保存されたデータを読み込む
In [3]: df_webを表示する。
Out[3]: df_webの内容
pandasのDataFrameにデータが読み込めています。
あとは、pandasの機能を利用して、自由にデータを扱うことができます。
read_clipboardは、クリップボードからテキストを読み取り、read_csvに渡しているので、read_csvのパラメーターが使用できます。
read_csvの使い方は、下記で解説しましたので是非ご覧ください。
>>【Python入門】CSVファイルをコード1行で読み込む方法
パラメーター
read_clipboardは、初期値設定(デフォルト)の区切り文字が空白です。
sep | 使用する区切り文字 | デフォルト: ‘\s+’‘ (空白) |
CSVファイルのように、カンマ(,)が区切り文字のときは、sepを設定します。
df_web = pd.read_clipboard(sep=',')
実習: 気象庁のWebページからデータを読み込む
気象庁のWebページから「アメダス(表形式)」のデータを読み込んでみます。
>>気象庁のWebページ: 宗谷岬(ソウヤミサキ) (新しいタブで開きます)
1時間ごとにアメダスが観測したデータが公開されています。

表の左上「時刻」から右下まで選択して、コピーします。
pandasで読み込んでみましょう。
In [1]: df_web = pd.read_clipboard()
In [2]: df_web
Out[2]: 時刻 気温 降水量 風向 風速 日照時間
0 時 ℃ mm 16方位 m/s h
1 1 8.9 0.0 北西 9.0
2 2 8.8 0.0 北西 9.6
3 3 8.9 0.0 北西 8.5
4 4 8.9 0.0 北西 8.5 0.0
5 5 8.7 0.0 北西 8.5 0.0
6 6 8.4 0.0 北西 7.9 0.0
pandasに読み込むことができました。
ただ、0行目の「単位」は必要ないですね。
このようなときは、パラメーターを設定して、0行目をスキップします。
パラメーター「skiprows」は、列名(時刻~日照時間)を0行目とするため、1行目をスキップします。
パラメーター「skiprows」の解説は、以下をご覧ください。
>>【Python入門】CSVファイルをコード1行で読み込む方法
df_web = pd.read_clipboard(skiprows=1)
0行目の列名「時刻」が1になっており、「単位」をスキップできていることを確認してください。
まとめ
- 表形式のデータをクリップボードから読み込む方法がわかりました
- read_clipboardは、read_csv のパラメーターが使えました