LoginSignup
0

More than 1 year has passed since last update.

Pandas: データフレームについて--01: 作成と保存

Last updated at Posted at 2022-06-19

データフレームって,みんなちゃんと理解していると思っているんだけど,念の為

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

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0