上流SEが久しぶりに開発してみる日記

マネジメント専任システムエンジニアがなれないプログラミングをしてみる日記です。

python 基礎データフレームの作り方

pythonの勉強をしていくと、覚えるのが大変なので、

自分の備忘がてら基礎を整理していこうと思います。

今回はデータフレームの作り方を整理します。

データフレームとはpythonのpandasライブラリに含まれているオブジェクトの事です。

簡単に言うと2次元の表形式でデータを加工できます。

なぜpythonがデータサイエンティストでよく使われているかというと、このデータフレームがあるからなのでは?と思っています。

実際使い勝手がよく、DBを簡単に操作するようにデータを扱うことができるのがメリットです。

あと関数が直感的にわかりやすい!

ということで、今回はそのデータフレームの作り方の基本を整理します。

###python の基礎 データフレームの作り方
import pandas as pd
import numpy as np


#pd.DataFrame()を使って生成する。
#data,columns,indexを指定できる。
#dataはその名の通り設定したいデータを指定する。
#columnsは列名を指定する。
#indexは各行のindex名を指定する。(未指定だとデフォルトで番号が振られる。)

#例①4行1列のデータを作る
data = ["A1","B2","C3","C1"]
df1 = pd.DataFrame(data=data, columns=['label'],index=['A','B','C','D'])
print("df1:4行1列")
print(df1)

#例②1行4列のデータを作る
data = [["A1","B2","C3","C1"]]
df2 = pd.DataFrame(data=data, columns=['A','B','C','D'], index=['row0'])
print("df2:1行4列")
print(df2)

#csvを取り込む
#pd.read_csv関数を使う。
#ファイル名を指定すれば取り込める。
#カラム名やデータに日本語がある場合はshift-jisへ変換するのを忘れにように(文字化けする。)
df_csv = pd.read_csv('input.csv',encoding='shift jis')
print("df_csv:csvから取り込み")
print(df_csv)


#jsonファイルを取り込む
#pd.read_json関数を使う。
#ファイル名を指定すれば取り込める。
#orientでjsonの取り込み形式が決まる。jsonの形式に応じて選択が必要。
#orient='dict':keyが列ラベル、valueが行ラベルと値になる
##{column:{index:value}}
#orient='list':keyが列ラベル、valueが値になる 行名は失われる
##{column:[values}}
#orient='series':keyが列ラベル、valueが行ラベルと値になるpndas.seriesになる。
##{column:series(values)}
#orient='split':keyが'index', 'columns', 'data'で、それぞれの値が行ラベル、列ラベル、値となる。
##{index:[index],colums:[colmuns],data:[values]}
#orient='records':keyが列ラベル、valueが値となるリストとする。行名の情報は失われる。
##{{column:value},・・・,{column:value}}

df_json = pd.read_json('input.json', orient='records')
print("df_json:jsonから取り込み")
print(df_json)
df1:4行1列
  label
A    A1
B    B2
C    C3
D    C1
df2:1行4列
       A   B   C   D
row0  A1  B2  C3  C1
df_csv:csvから取り込み
   A  B
0  1  5
1  2  6
2  3  7
3  4  8
df_json:jsonから取り込み
   A  B
0  1  2
1  3  4

インプットファイルは以下です。

■input.csv

A B
1 5
2 6
3 7
4 8

■input.json

[{"A":1,"B":2},{"A":3,"B":4}]