English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Pandas IO操作の例
テキストファイルを読み込む主な機能はread_csv()とread_table()です。彼らは同じ解析コードを使用してテーブルデータをスマートにDataFrameオブジェクトに変換します:
pandas.read_csv(filepath_or_buffer, sep=',', delimiter=None, header='infer', names=None, index_col=None, usecols=None
pandas.read_csv(filepath_or_buffer, sep='\t', delimiter=None, header='infer', names=None, index_col=None, usecols=None
このデータをtemp.csvとして保存し、操作を行います。
S.No,Name,Age,City,Salary 1,Tom,28,Toronto,20000 2,Lee,32,HongKong,3000 3,Steven,43,Bay Area,8300 4,Ram,38,Hyderabad,3900
read.csvはcsvファイルからデータを読み取り、DataFrameオブジェクトを作成します。
import pandas as pd df=pd.read_csv("temp.csv") print df
以下は実行結果です:
S.No Name Age City Salary 0 1 Tom 28 Toronto 20000 1 2 Lee 32 HongKong 3000 2 3 Steven 43 Bay Area 8300 3 4 Ram 38 Hyderabad 3900
これにより、csvファイル内の特定の列を指定して、index_colを使ってカスタムインデックスを使用することができます。
import pandas as pd df=pd.read_csv("temp.csv",index_col=['S.No']) print df
以下は実行結果です:
S.No Name Age City Salary 1 Tom 28 Toronto 20000 2 Lee 32 HongKong 3000 3 Steven 43 Bay Area 8300 4 Ram 38 Hyderabad 3900
列のdtypeはdictとして渡すことができます。
import pandas as pd df = pd.read_csv("temp.csv", dtype={'Salary': np.float}64) print df.dtypes
以下は実行結果です:
S.No int64 Name object Age int64 City object Salary float64 dtype: object
デフォルトでは、Salaryカラムのdtypeはintですが、結果としてfloatとして表示されます。なぜなら、明示的に型を変換しているからです。したがって、データはfloatのように見えます。
したがって、データはfloatのように見えます。
S.No Name Age City Salary 0 1 Tom 28 Toronto 20000.0 1 2 Lee 32 HongKong 3000.0 2 3 Steven 43 Bay Area 8300.0 3 4 Ram 38 Hyderabad 3900.0
namesパラメータを使用してタイトルの名前を指定します。
import pandas as pd df=pd.read_csv("temp.csv", names=['a', 'b', 'c','d','e']) print df
以下は実行結果です:
a b c d e 0 S.No Name Age City Salary 1 1 Tom 28 Toronto 20000 2 2 Lee 32 HongKong 3000 3 3 Steven 43 Bay Area 8300 4 4 Ram 38 Hyderabad 3900
注意:ヘッダー名にカスタム名が追加されていますが、ファイルのヘッダーはまだ削除されていません。現在、headerパラメータを使用してそれを削除します。
タイトルが最初の行にない場合、行番号をタイトルに渡します。これにより、前の行をスキップします。
import pandas as pd df=pd.read_csv("temp.csv",names=['a','b','c','d','e'],header=0) print df
以下は実行結果です:
a b c d e 0 S.No Name Age City Salary 1 1 Tom 28 Toronto 20000 2 2 Lee 32 HongKong 3000 3 3 Steven 43 Bay Area 8300 4 4 Ram 38 Hyderabad 3900
skiprowsは指定された行数をスキップします。
import pandas as pd df=pd.read_csv("temp.csv", skiprows=2) print df
以下は実行結果です:
2 Lee 32 HongKong 3000 0 3 Steven 43 Bay Area 8300 1 4 Ram 38 Hyderabad 3900