pandasでクリップボードの中身をDataFrameとして取得するread_clipboard

pandasの関数read_clipboard()を使うと、実行時にクリップボードに保存されている内容をDataFrameとして読み取ることができます。スクリプトファイル.pyだと使いにくいかもしれないが、Jupyter Notebookなどの対話的な環境で使うとすごく便利。

pandas.read_clipboard — pandas 0.22.0 documentation

なお、read_clipboard()とは逆にDataFrameをクリップボードにコピーするメソッドto_clipboard()も用意されています。以下の記事参照。

read_clipboard()

デフォルトでは引数sep='\s+'で、空白がデリミタ(区切り文字)となっています。 Webページの表(table要素)や、ExcelやNumbersなどの表計算ソフトのセルをコピーすると空白で区切られてコピーされるので、そのままDataFrameに変換できます。 Python - Wikipediaの表をコピーしてread_clipboard()を実行する例を示す。最後にto_csv()メソッドでcsvファイルとして保存しています。

import pandas as pd

df = pd.read_clipboard()
print(df)
#    バージョン    リリース日[16]
# 0    3.0   2008年12月3日
# 1    3.1   2009年6月27日
# 2    3.2   2011年2月20日
# 3    3.3   2012年9月29日
# 4    3.4   2014年3月16日
# 5    3.5   2015年9月13日
# 6    3.6  2016年12月23日

df.to_csv('data/dst/test.csv')

コピーした内容が空白で区切られていない場合は引数sepを適宜設定します。例えば、カンマ,区切りの場合はread_clipboard(sep=',')とすれば問題ありません。 read_clipboard()はクリップボードの中身をread_table()に渡しているだけなので、引数はread_table()やread_csv()と同じ。細かい引数の説明などは以下の記事を参照。

例えば、デフォルトでは上の例のように最初の行(ヘッダー)が列名columnsとして扱われる。ヘッダーがない表に対しては引数header=Noneとすればよい。 なお、特定のWebページの表を定期的に読み込んだり、同じレイアウトの大量のExcelファイルから特定の位置のデータを読み込んだりする場合は、いちいちクリップボードにコピーするよりもread_html()やread_excel()を使うほうが楽。以下の記事を参照。

シェア

関連カテゴリー

Python pandas

pandasでカテゴリ変数をダミー変数に変換(get_dummies) pandas.DataFrame, Seriesの先頭・末尾の行を返すheadとtail pandasで欠損値NaNを前後の値から補間するinterpolate pandasで窓関数を適用するrollingを使って移動平均などを算出 pandas.DataFrame, Seriesをソートするsort_values, sort_index Python, pandasでwebページの表(htmlのtable)をスクレイピング Python, pandas, seabornでペアプロット図(散布図行列)を作成 pandasで複数条件のand, or, notから行を抽出(選択) pandas.DataFrameをクリップボードにコピーするto_clipboard pandasでExcelファイル(xlsx, xls)の書き込み(to_excel) pandasのdescribeで各列の要約統計量(平均、標準偏差など)を取得 pandasで行・列の差分・変化率を取得するdiff, pct_change pandas.DataFrameを結合するmerge, join(列・インデックス基準) pandas.DataFrame, Seriesの重複した行を抽出・削除

Last Updated: 6/26/2019, 10:34:03 PM