LoginSignup
2
9

More than 5 years have passed since last update.

Python3 Pandasの使い方メモ

Last updated at Posted at 2017-12-26

多分すぐに忘れるのでメモ。

簡単な使い方

# pandas インポート
>>> import pandas pd

# 名前と身長のデータを生成(列ごとにデータを生成)
>>> df = pd.DataFrame([ ["taro", "hanako"], [178, 152] ]).T

# 名前と身長のデータを生成(行ごとにデータを生成)
>>> df = pd.DataFrame([ ["taro", 178], ["hanako", 152] ])

# 列に名前をつける
>>> df.columns = ["name","height"]

# データ表示
>>> df
     name height
0    taro    178
1  hanako    152

諸情報の確認

# 行数の確認
>>> len(df)

# 次元数の確認
>>> df.shape #(行数、列数)の形

# カラム情報の一覧
>>> df.info() #カラム名と型の一覧

# 各列の基礎統計量の確認
# Rでいうところのsummary()
>>> df.describe() # 平均、分散、4分位など

# head / tail
>>> df.head(1) #先頭1行を確認
>>> df.tail(1) #先頭1行を確認

csvを出力する

DataFrame.to_csv()

Signature: to_csv(path_or_buf=None, 
           sep=',', 
           na_rep='', 
           float_format=None, 
           columns=None, 
           header=True, 
           index=True, 
           index_label=None, 
           mode='w', 
           encoding=None, 
           compression=None, 
           quoting=None, 
           quotechar='"', 
           line_terminator='\n', 
           chunksize=None, 
           tupleize_cols=False, 
           date_format=None, 
           doublequote=True, 
           escapechar=None, 
           decimal='.')
Docstring:
      Write DataFrame to a comma-separated values (csv) file

デフォルトでカンマ区切り、utf-8でヘッダーとインデックスまでついたデータが出力されるようです

引数 役割
path_to_buf 出力するファイル名。省略した場合は、コンソール上に文字列として出力される。
sep 区切り文字(デフォルト=,(カンマ))
encoding 出力の際の文字コード。python3ならデフォルト='utf-8'。他にも'shift_jis','euc_jp'など。

出力例1

>>> import pandas as pd

# 名前と身長のデータを生成
>>> df = pd.DataFrame([ ["taro", 178], ["hanako", 152] ], columns=["身長", "体重"])

# CSV ファイル (hoge.csv) として出力
>>> df.to_csv("hoge.csv")

確認

# 内容を確認する
$ cat hoge.csv

,身長,体重
0,taro,178
1,hanako,152 

# 文字コードを確認する(Mac)
$ file --mime hoge.csv
hoge.csv: text/plain; charset=utf-8

出力例2 shit_jisで出力

>>> import pandas as pd

# 名前と身長のデータを生成
>>> df = pd.DataFrame([ ["taro", 178], ["hanako", 152] ], columns=["身長", "体重"])

# CSV ファイル (hoge.sjis.csv) として出力
>>> df.to_csv("hoge.sjis.csv" , encoding="shift_jis")

確認

# 内容を確認する(環境によっては文字化けします)
$ cat hoge.sjis.csv

,�g��,�̏d
0,taro,178
1,hanako,152

# 文字コードを確認する(Mac)
$ file --mime hoge.sjis.csv
hoge.sjis.csv: text/plain; charset=unknown-8bit

# shift_jisはunknown-8bitとして表示されるようです
2
9
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
2
9