多分すぐに忘れるのでメモ。
簡単な使い方
# 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として表示されるようです