データフレームって,みんなちゃんと理解していると思っているんだけど,念の為
1. 簡単なデータフレーム例の作成法
1.1. 方法1
辞書をデータフレームに変換する場合。
import pandas as pd
df = pd.DataFrame({
"a": [1, 2, 3, 4, 5],
"b": ['a', 'b', 'a', 'b', 'b']
})
print(df)
a b
0 1 a
1 2 b
2 3 a
3 4 b
4 5 b
実行環境によっては,print() を使うときと,単に名前を入力するときで,表現に違いがあることもある。
以下では,表示の簡略化のため print() を明示的に使うことにする。
df
a | b | |
---|---|---|
0 | 1 | a |
1 | 2 | b |
2 | 3 | a |
3 | 4 | b |
4 | 5 | b |
1.2. 方法2
リストをデータフレームに変換する場合は,以下のようにする。.T
は転置を意味する。
df = pd.DataFrame(
[["A", "A", "A", "A", "A", "B", "B", "B"],
[2.3, 1.5, 2.4, 3.4, 1.1, 6.5, 3.1, 2.9],
[1, 2, 3, 4, 5, 6, 7, 8]]
) .T
print(df)
0 1 2
0 A 2.3 1
1 A 1.5 2
2 A 2.4 3
3 A 3.4 4
4 A 1.1 5
5 B 6.5 6
6 B 3.1 7
7 B 2.9 8
1.3. 方法3
既存の CSV ファイルを pd.read_csv でデータフレームとして読み込む。
以下では,'https://raw.githubusercontent.com/mwaskom/seaborn-data/master/iris.csv' からデータを読み込んでいるが,通常は,ユーザのファイルから読み込む。
iris = pd.read_csv('https://raw.githubusercontent.com/mwaskom/seaborn-data/master/iris.csv')
head メソッドは,データフレームの先頭から指定された行数(デフォルトは 5 行)を表す。データフレーム名.head(行数)
で指定する。
print(iris.head())
sepal_length sepal_width petal_length petal_width species
0 5.1 3.5 1.4 0.2 setosa
1 4.9 3.0 1.4 0.2 setosa
2 4.7 3.2 1.3 0.2 setosa
3 4.6 3.1 1.5 0.2 setosa
4 5.0 3.6 1.4 0.2 setosa
ちなみに,末尾を表示するのはtail メソッドである。
print(iris.tail(2))
sepal_length sepal_width petal_length petal_width species
148 6.2 3.4 5.4 2.3 virginica
149 5.9 3.0 5.1 1.8 virginica
2. データフレームの保存方法
作成したデータフレームや,編集したデータフレームを後々利用するために保存するのは,to_csv()
メソッドである。
データフレーム名.to_csv(ファイルパス)
のように指定する。
上で読み込んだ iris データフレームを,自分のコンピュータに保存して,後々はそこから読み込んで利用したいなら,以下のようにする。
iris.to_csv("my-iris.csv")
上のようにフィル名だけを指定すると,その時点で有効なディレクトリ(デフォルトディレクトリ)に保存される。それで何の問題もないならよいのだが,明示的にパスを指定して保存すれば,間違いない。
いずれにせよ,(デフォルトディレクトリに)保存されたファイルをデータフレームに読み込むためには,前の通り pd.read_csv で読み込めばよい。
注意:read_csv の前は pd.
であったり,to_csv()
の前は データフレーム名.
であったりして,戸惑うかもしれないがちゃんと指定を仕分けること。
iris2 = pd.read_csv("my-iris.csv")
print(iris2.head(2))
Unnamed: 0 sepal_length sepal_width petal_length petal_width species
0 0 5.1 3.5 1.4 0.2 setosa
1 1 4.9 3.0 1.4 0.2 setosa
3. もっと知りたい人
オンラインヘルプを見ましょう。ここでも,関数のようなものの前に指定するもの(class, funcion, method)が違うことに注意。
help(pd.DataFrame) # Help on class DataFrame in module pandas.core.frame
help(pd.read_csv) # Help on function read_csv in module pandas.io.parsers.readers
help(iris.to_csv) # Help on method to_csv in module pandas.core.generic
help(iris.head) # Help on method head in module pandas.core.generic
help(iris.tail) # Help on method tail in module pandas.core.generic