LoginSignup
0
1

More than 3 years have passed since last update.

データの読み込み・単純集計

Last updated at Posted at 2020-04-23

概要

データの読み込みから,簡単な統計量の算出.
* python3
* pandas

データの読み込み


import pandas as pd
# csvの場合
data = pd.read_csv('test.csv')

# excelの場合
data = pd.read_excel('test.xlsx')

データ連結(ユニオン・ジョイン)

  • ユニオン:行を追加するイメージ. 
id 氏名 数学 英語
1 A 80 40
2 B 66 50
3 C 70 00
id 氏名 数学 英語
1 D 100 100
2 E 69 30
union_data = pd.concat([table1, table2],  ignore_index=True)

ignore_index=trueにより,Index(id)を再度振り直してくれる.
table2の属性が足りない場合は,nullがセットされる.

  • ジョイン:列を追加するイメージ.
id 氏名 数学 英語
1 A 80 40
2 B 66 50
3 C 70 00
id 氏名 年齢 出身
1 A 20 北海道
2 B 21 沖縄
3 C 20 京都
join_data = pd.merge(table1,table2[['年齢','出身']], on='id', how='left')

table2の一部をジョインする場合は配列で指定する.
onは,ジョイン時に両テーブルを結びつけるところ.
howは突合方法(説明すると長いから別途記事書く必要ありそう)


ジョインするテーブルて列名が異なる場合は以下のように指定する

join_data = pd.merge(table1,table2, left_on='id', right_on='item_id' how='left')

各種統計量の計算

test.py
# 各行の統計量(平均・標準偏差等)
data.describe()

# 欠損値(nullとか)の簡単な確認
# 各カラムのtrue・falseを表示
data.isnull() 
# 各列のisnullの数を表示
data.isnull().sum()

データの一部抽出

特例の年月のデータの合計とかが知りたい時には、groupbyを利用
as_indexをTrueにするとグループラベルがIndexになる。
python3:
join_data.groupby(['まとめる列名'], as_index=False).sum()

一部抜粋して別テーブルの作成
fill_value=0にすることで、NaNのカラムを0にしてくれる
aggfuncは他に, max, minの値も取得できる

# 任意の行・列の出現回数だけ求める場合
byState = pd.pivot_table(data, index='行になる値', columns='列になる値', aggfunc='size', fill_value=0)

# 任意の行・列の合計値を求める場合
byState = pd.pivot_table(data, index='行になる値', columns='列になる値', values='合計する値' aggfunc='sum', fill_value=0)
0
1
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
1