文字列からDataFrame作成(困ったらio.StringIO)¶
from_stringがない¶
- read_csvでCSV読み込むのめんどうなとき
- copyした内容で作りたい
- というよりは、Rにもあるからpandasにもあると思ったらなかった
- from_csvはあったので、StringIOで包んでしまえ
- つくったあとに、read_csvでよいことに気づく
- documentにのってたのでmemoに降格…(http://pandas.pydata.org/pandas-docs/stable/io.html#csv-text-files)
import pandas as pd
import io
_csv = """a,b,c
1,2,3
4,5,6
"""
pd.read_csv(io.StringIO(_csv))
# from stringつくった
# from_csvはIndexの読み込みがめんどうだった
# 以下、無視して問題なし
def from_string(_csv, **kwargs):
# http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.from_csv.html
return pd.DataFrame.from_csv(io.StringIO(_csv), **kwargs)
from_string(_csv)
from_string(_csv, index_col=None)
from_string(_csv[1:])
b c
a
1 2 3
4 5 6
#################
a b c
0 1 2 3
1 4 5 6
#################
b c
1 2 3
4 5 6
copyするのめんどうならclipboardから¶
- これもfrom_はないが、read_, to_ が存在した
- https://github.com/pydata/pandas/blob/master/pandas/util/clipboard.py
- https://github.com/pydata/pandas/blob/master/pandas/util/clipboard.py#L1 に
# Pyperclip v1.5.15
と書かれている - https://github.com/pydata/pandas/commit/a7d069dc2dbf451e5286cfca3497fa03c77dc900 からPyperclipのコードを使っているっぽい
なんでこんなに調べたか¶
- read_ の存在に気づかず、to_しかないのかよーとPyperclipを使ったコードを作成していた…
- http://qiita.com/ksomemo/items/381191fa95992d81be90#python%E3%81%A7clipboard%E6%93%8D%E4%BD%9C
import pyperclip
def from_clipboad(**kwargs):
return from_string(pyperclip.paste(), **kwargs)
pyperclip.copy(_csv)
from_clipboad(index_col=None)