2016-07-26 9 views
2

私は次のデータフレームを持っていると言います。私はしようとしている操作の種類について、Stackoverflow/SOに関する質問をしたいと思います。今、問題のデータフレームを再生成するためにコードを提供するという一般的なベストプラクティスをユーザが手助けする。Stackoverflow/SOの質問のためのパンダのデータフレームを再生成するコード

    sunlight 
       sum count 
city date          
SFO 2014-05-31 -1805.04 31 
SFO 2014-06-30 -579.52  30 
SFO 2014-07-31 1025.51  31 
SFO 2014-08-31 -705.18  31 
SFO 2014-09-30 -1214.33 30 

上記のデータフレームを生成するコードを提供するために必要なすべてのテキストを手動で入力する必要はありません。そこには、データフレームオブジェクトを生成するために誰かがpython/ipythonコマンドラインに簡単にコピーして貼り付けることができる何らかの構造のデータフレームを出力するpandas関数/コマンドがありますか? df.head().to_clipboard()のようなものですが、dfの表示をコピーする代わりに、dfを生成するために必要なコードをコピーしてください。

上記のデータフレームは非常に単純ですが、複雑なデータフレームの場合は、SO質問にデータフレームを生成するために必要なコードを手動で入力するのは非常に面倒です。

+0

Iだけ 'df.to_csv()'メソッドと 'io.StringIO'モジュール:http://stackoverflow.com/questions/13940753/aligning-dataframes- with-same-columns-different-index-levels –

+0

これに関する詳細はこちら:http://stackoverflow.com/questions/20109391/how-to-make-good-reproducible-pandas-examples(パンダのタグ情報ページ) –

答えて

3

使用to_dict()

のは、あなたが持っているとしましょう、私は最初の印刷をいただきたい

このdf

df = pd.DataFrame(np.arange(16).reshape(4, 4), list('abcd'), 
        pd.MultiIndex.from_product([list('AB'), ['One', 'Two']])) 
df 

enter image description here

print df 

    A  B  
    One Two One Two 
a 0 1 2 3 
b 4 5 6 7 
c 8 9 10 11 
d 12 13 14 15 
df.to_dict()

print df.to_dict() 

{('B', 'One'): {'a': 2, 'c': 10, 'b': 6, 'd': 14}, ('A', 'Two'): {'a': 1, 'c': 9, 'b': 5, 'd': 13}, ('A', 'One'): {'a': 0, 'c': 8, 'b': 4, 'd': 12}, ('B', 'Two'): {'a': 3, 'c': 11, 'b': 7, 'd': 15}} 

それから私はそれをコピーしてpd.DataFrame()に貼り付けます。読みやすいように、コピーしたテキストを少しフォーマットすることができます。

df = pd.DataFrame({('B', 'One'): {'a': 2, 'c': 10, 'b': 6, 'd': 14}, 
        ('A', 'Two'): {'a': 1, 'c': 9, 'b': 5, 'd': 13}, 
        ('A', 'One'): {'a': 0, 'c': 8, 'b': 4, 'd': 12}, 
        ('B', 'Two'): {'a': 3, 'c': 11, 'b': 7, 'd': 15}}) 

df 

enter image description here

print df 

    A  B  
    One Two One Two 
a 0 1 2 3 
b 4 5 6 7 
c 8 9 10 11 
d 12 13 14 15 
関連する問題