pandasでDataFrameを使う方法
スポンサーリンク
研究でニューラルネットワークを使って教師あり機械学習を行っています。
今まで頑なにpandasを使わずに手で結果をまとめてました。
試しにpandasを使ってみたところ、便利すぎて驚愕しpandas依存症になったので今回は簡単に使い方を解説します。
Pythonを使っている方必見です。
pandasでDataFrameを使う方法
いきなりからソースを載せちゃいます。
import pandas as pd df = pd.DataFrame({'C1': [0, 1, 2], 'C2': [2, 3, 4], 'C3': [4, 5, 6]},index=["A1","A2","A3"]) print(df)
こんな感じで入力すると出力は以下のようになります。
C1 C2 C3 A1 0 2 4 A2 1 3 5 A3 2 4 6
下のような感じだと同じようだけど違う出力になります。
import pandas as pd import numpy as np a = np.array(([0,1,2], [2,3,4], [4,5,6]),dtype=np.int32) df = pd.DataFrame(a, columns=["C1","C2","C3"], index=["A1","A2","A3"]) print(df)
出力は以下。
C1 C2 C3 A1 0 1 2 A2 2 3 4 A3 4 5 6
2個目のやつのが直観的にわかると思います。
使い方は上記のような感じですね。
詳しく解説します。
df = pd.DataFrame(value, columns=["C1","C2","C3"], index=["A1","A2","A3"])
この部分の columns は列の名前, index は行の名前です。
columnsもindexも、手で名前を入力するときは上記のようにリストとして書きます。
リストを直接代入するときは、
hoge = [1,2,3] index=[hoge]
みたいな感じで書きます。
また、上記のような場合、valueとcolumsやindexそれぞれの次元が一致していないとエラーになります。
基本pandasのエラーは次元不一致です。
pandasのDataFrame書き出しと読み出し
df.to_csv("hoge.csv") #書き込み hoge = pd.read_csv("hoge.csv") #読み込み
ていう感じで書き込み、読みこみできます。
また、
df.to_csv("hoge.csv",mode="a",header=False,index=False)
ていう感じでオプションもあります。
mode="a"で追記です。デフォルトは "w"で上書きです。
headerやindexはデフォルトでTrueになっていて、Falseにすると列名と行名を非表示で書き込めます。
まとめ
今回はものすごく簡単にpandasの使い方をまとめました。
自分の備忘録も兼ねています。笑
ニューラルネットで交差検証している方は、pandasを使うとデータの処理が圧倒的に楽になります。
是非使ってみてくださいね。