筋トレ大学生によるアウトプット雑記

筋トレや読書のことをはじめとして、プログラミングその他日常生活における様々なことについて書いていきます。

pandasでDataFrameを使う方法

スポンサーリンク

f:id:daimori1005:20191030233106p:plain
研究でニューラルネットワークを使って教師あり機械学習を行っています。
今まで頑なにpandasを使わずに手で結果をまとめてました。
試しにpandasを使ってみたところ、便利すぎて驚愕しpandas依存症になったので今回は簡単に使い方を解説します。
Pythonを使っている方必見です。

f:id:daimori1005:20191030234612j:plain

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を使うとデータの処理が圧倒的に楽になります。
是非使ってみてくださいね。

スポンサーリンク