英国でデータサイエンスを学ぶ

30代になってから海外で統計学・機械学習・プログラミングを勉強

MENU

pythonでデータ読んだら最初にやること

Rばかりいじっていたら忘れてしまうので、備忘メモです。
今回は、pandasを使用して外部からデータフレーム に読み込んだ場合を想定しています。


[目次]


まずはデータの読み込み

以下のようなデータを読み込むことを考えます。


Grade Class Club Headcount
First A Soccer 3
First A Baseball 5
First A Tennis 3
First B Soccer 6
First B Baseball 7
First B Tennis 8
First C Soccer 4
First C Baseball 0
First C Tennis 2
Second A Soccer 6
Second A Baseball 3
Second A Tennis 4
Second B Soccer 1
Second B Baseball 8
Second B Tennis 9
Second C Soccer 6
Second C Baseball 5
Second C Tennis 7
Third A Soccer 3
Third A Baseball 2
Third A Tennis 6
Third B Soccer 7
Third B Baseball 4
Third B Tennis 9
Third C Soccer 7
Third C Baseball 8
Third C Tennis 6


読み込み方としては、

1.上記データをcsvファイル(例えばaaa.csvとする)にコピーペーストして、pandasのread_csvで読み込む方法

具体的には

import pandas as pd 
df = pd.read_csv("aaa.csv")

で一発です。

もしくは、

2.上記データをコピーしてクリップボードからpadasのデータフレーム に読み込む方法

具体的には

import pandas as pd 
df =  pd.read_clipboard()

で一発です。


データの行数・列数を確認する

df.shape

で確認可能です。
これを実行すると、

(27, 4)

のように出力されます。これは、27行・4列のデータの場合になります。

行数だけ確認したい場合

行数だけ確認した場合には、以下の3通りの方法があります。

df.shape[0]

#もしくは
len(df)

#もしくは
len(df.index)

いずれも、27が出力されます。
これで、行数分のfor文を作成したい時には、

for i in range(df.shape[0]):
    #命令文

#もしくは
for i in range(len(df)):
    #命令文

#もしくは
for i in range(len(df.index)):
    #命令文

としてやれば良いです。

列数だけ確認したい場合

列数を確認したい場合には、

df.shape[1]

#もしくは
len(df.columns)

で求められます。
この場合はいずれも4が出力されます。

pandasデータフレーム の情報が知りたい場合

データフレーム のメモリ使用量とかnullオブジェクトがいくつぐらいあるのかといったことを確認する時には

df.info()

で調べることができます。
今回の場合は

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 27 entries, 0 to 26
Data columns (total 4 columns):
Grade        27 non-null object
Class        27 non-null object
Club         27 non-null object
Headcount    27 non-null int64
dtypes: int64(1), object(3)
memory usage: 944.0+ bytes

という出力になります。
この程度のデータであれば、メモリはほんの僅かしか使用していませんね。

データフレーム の列ごとの統計量(平均、分散、四分位点、最大・最小値)を知りたい場合

列ごとの統計量を知りたい場合は

df.describe()

で調べることができます。
この場合、出力は以下のようになります。

       Headcount
count  27.000000
mean    5.148148
std     2.460514
min     0.000000
25%     3.000000
50%     6.000000
75%     7.000000
max     9.000000

Headcount 以外の列は数値データではないので、出力されません。

データフレーム の最初の数行を確認したい場合

データフレーム で最初の数行を確認するには、以下のように実行します。>

df.head()

この場合は、最初の5行分が出力されます。

   Grade Class      Club  Headcount
0  First     A    Soccer          3
1  First     A  Baseball          5
2  First     A    Tennis          3
3  First     B    Soccer          6
4  First     B  Baseball          7

確認する行数を変更する場合には、headの引数として指定すればOKです。

df.head(10)

これで10行分確認ができます。

    Grade Class      Club  Headcount
0   First     A    Soccer          3
1   First     A  Baseball          5
2   First     A    Tennis          3
3   First     B    Soccer          6
4   First     B  Baseball          7
5   First     B    Tennis          8
6   First     C    Soccer          4
7   First     C  Baseball          0
8   First     C    Tennis          2
9  Second     A    Soccer          6

データフレーム の最後の数行を確認したい場合

head()ではなく、tail()を使用すれば可能です。

df.tail()

これで出力は

    Grade Class      Club  Headcount
22  Third     B  Baseball          4
23  Third     B    Tennis          9
24  Third     C    Soccer          7
25  Third     C  Baseball          8
26  Third     C    Tennis          6
<||
となります。

確認する行数を変更するには、引数で指定して
>|python|
df.tail(10)

としてやればOKです。
これで10行分が出力されます。

     Grade Class      Club  Headcount
17  Second     C    Tennis          7
18   Third     A    Soccer          3
19   Third     A  Baseball          2
20   Third     A    Tennis          6
21   Third     B    Soccer          7
22   Third     B  Baseball          4
23   Third     B    Tennis          9
24   Third     C    Soccer          7
25   Third     C  Baseball          8
26   Third     C    Tennis          6