0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

分析で利用するpandasのDataFrame(データ確認編)

Posted at

この記事から得られること

  • データ分析で利用するための、データ操作が簡単にできることがわかる。
  • 慣れれば、おそらく、エクセルより操作が簡単だと感じるかもしれません。
  • データ操作するための時間短縮になるかもしれません。

なぜこの内容を紹介するのか

理由は、なれるとエクセルより作業が楽になるのではと思って便利になるのではと思っています。

データの読み込みと確認

1. pd.read_csv()

CSVファイルを読み込み、DataFrameを作成します。

import pandas as pd

df = pd.read_csv('data.csv')

read_*** の ***の部分を変更すると、excel,sql,clipbordなど読み込みできるデータを変更できます。
他のデータの読み込みは、こちらを参照してください。

pandas Input/output

今回ファイルの中身は、こちらを想定して説明します。
株価の数字を適当に入れています。
1箇所pd.NAと入れていますが、NAの処理のため意図的に入れています。

df = pd.DataFrame({'GOOG':[158.56,157.21,167.31,168.42,167.19,165.29,168.83],
                   'AMZN':[186.61,181.96,184.76,185.13,186.33,187.97,pd.NA]
                   })

2. df.columns

カラム名が取得できます。

print(df.columns)
Index(['GOOG', 'AMZN'], dtype='object')

3. df.head()

DataFrameの先頭数行を表示します。
() 内に数字がない場合は、先頭行から5行表示します。
数字を入力すると、指定した数字の数だけ先頭行から表示されます。

print(df.head())

実行結果

GOOG AMZN
0 158.56 186.61
1 157.21 181.96
2 167.31 184.76
3 168.42 185.13
4 167.19 186.33

先頭から5行分取得されています。

4. df.tail()

DataFrameの末尾数行を表示します。
() 内に数字がない場合は、末尾行下5行表示します。
数字を入力すると、指定した数字の数だけ末尾行下の行が表示されます。

print(df.tail())

実行結果

GOOG AMZN
2 167.31 184.76
3 168.42 185.13
4 167.19 186.33
5 165.29 187.97
6 168.83

末尾5行分が取得されています。pd.NAの部分は空白(データなし)です。
CSVやエクセルなどのファイルを読み込みし、データなしのセルは
同様に空白が表示されます。
実際のデータのファイルを読込するときは、どこに空白があるか、
目視では難しいので、空白の有無を確認後、どのように処理をするか決めます。

5. df.shape

DataFrameの行数と列数をタプルで返します。

print(df.shape)
(7, 2)

カラム名を除く、7行分と、2列分のデータが入っていることが確認できます。

6. df.dtypes

各列のデータ型を表示します。

print(df.dtypes)
0
GOOG	float64
AMZN	object
dtype: object

GOOGのデータには、小数点を含む値が入っていることがわかります。
AMZNのデータには、ovject型のデータが入っていることがわかります。
どうやら、一つでも、種類の異なるデータが入っていると、その値に影響するようです。

7. df.info()

DataFrameの概要情報を表示します。

print(df.info())
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 7 entries, 0 to 6
Data columns (total 2 columns):
 #   Column  Non-Null Count  Dtype  
---  ------  --------------  -----  
 0   GOOG    7 non-null      float64
 1   AMZN    6 non-null      object 
dtypes: float64(1), object(1)
memory usage: 240.0+ bytes

ここからでも0番目から6番目の7行分データが入っていることがわかります。
nullの値が入っていない数も
GOOG 7 non-null
AMZN 6 non-null
からわかります。
AMZNは1個だけnull(値が入っていない)いうことがわかります。

8. df.describe()

数値型の列の統計量(平均値、標準偏差、最小値、最大値など)を表示します。

print(df.describe())

実行結果

GOOG
count 7.000000
mean 164.687143
std 4.796772
min 157.210000
25% 161.925000
50% 167.190000
75% 167.865000
max 168.830000

ここで、AMZNの計算はされません。
どうやら、1箇所でも数字以外が入力されていると計算されないようです。
また、列に数字以外の値が入力されている場合、例えば、性別、県名などが入力されている場合も計算されません。

他データを確認する方法はpandasのページにありますので、
必要な方は見てみてください。

0
0
0

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
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?