import pandas as pd
train = pd.read_csv('train.csv')
type(train)
pandas.core.frame.DataFrame
trainはDataFrameオブジェクト
train.columns
type(train.Age)
pandas.core.series.Series
trainはヘッダーの名前で各カラムにアクセスできる。 ちなみにtrain.AgeはSeriesオブジェクトというもので、リストみたいだけど、統計処理に便利なメソッドをもってる。
train.Age.head()
0 22 1 38 2 26 3 35 4 35 Name: Age, dtype: float64
Rで便利なheadも使える。
print train.describe()
PassengerId Survived Pclass Age SibSp \ count 891.000000 891.000000 891.000000 714.000000 891.000000 mean 446.000000 0.383838 2.308642 29.699118 0.523008 std 257.353842 0.486592 0.836071 14.526497 1.102743 min 1.000000 0.000000 1.000000 0.420000 0.000000 25% 223.500000 0.000000 2.000000 20.125000 0.000000 50% 446.000000 0.000000 3.000000 28.000000 0.000000 75% 668.500000 1.000000 3.000000 38.000000 1.000000 max 891.000000 1.000000 3.000000 80.000000 8.000000 Parch Fare count 891.000000 891.000000 mean 0.381594 32.204208 std 0.806057 49.693429 min 0.000000 0.000000 25% 0.000000 7.910400 50% 0.000000 14.454200 75% 0.000000 31.000000 max 6.000000 512.329200
これは、summary()的なやつ。
train.Age[0:10]
0 22 1 38 2 26 3 35 4 35 5 NaN 6 54 7 2 8 27 9 14 Name: Age, dtype: float64
train.Age[5]がNaNになってる。
train.Age[0:10].isnull()
0 False 1 False 2 False 3 False 4 False 5 True 6 False 7 False 8 False 9 False Name: Age, dtype: bool
isnull()を使うと、Trueが返る。
train.Age = train.Age.fillna(train.Age.mean())
0 22.000000 1 38.000000 2 26.000000 3 35.000000 4 35.000000 5 29.699118 6 54.000000 7 2.000000 8 27.000000 9 14.000000 10 4.000000 11 58.000000 12 20.000000 13 39.000000 14 14.000000 ... 876 20.000000 877 19.000000 878 29.699118 879 56.000000 880 25.000000 881 33.000000 882 22.000000 883 28.000000 884 25.000000 885 39.000000 886 27.000000 887 19.000000 888 29.699118 889 26.000000 890 32.000000 Name: Age, Length: 891, dtype: float64
fillna('NaNを埋める数値')が便利!!