Pandas——ix vs loc vs ilocの違い
4533 ワード
Different Choices for Indexing
1.loc-行ラベルで行データをインデックスする
1.1 loc[1]インデックスが1行目であることを示す(indexは整数)
1.2 loc[‘d’]はインデックスが第’d’行であることを示す(indexは文字である)
1.3カラムデータをインデックスしたい場合は、このようにするとエラーが発生します.
1.4 locは複数行のデータを取得できる
1.5 loc拡張-行の列をインデックスする
1,6 loc拡張-インデックスのあるカラム
もちろん、ある列のデータを取得する最も直接的な方法はdfである.[カラムラベル]ですが、カラムラベルが不明な場合は、この方法でカラムデータを取得できます.なお、dataframeのインデックス[1:3]は、通常とは異なる1,2,3を含む.
2.iloc-行番号による行データの取得
2.1どのローを取得するか、そのローの数値を入力します.
2.2行タグインデックスによるエラーの報告
2.3同じように行番号で複数行をインデックスできる
2.4 ilocインデックス列データ
3.ix-最初の2つの混合インデックスを結合
3.1行番号索引による
3.2行ラベル索引
人工知能(Python、データ分析、機械学習、深さ学習、推薦システム、強化学習)を学びたいので、公衆番号AI派に来てみましょう!!
1.loc-行ラベルで行データをインデックスする
1.1 loc[1]インデックスが1行目であることを示す(indexは整数)
import pandas as pd
data = [[1,2,3],[4,5,6]]
index = [0,1]
columns=['a','b','c']
df = pd.DataFrame(data=data, index=index, columns=columns)
print df.loc[1]
'''
a 4
b 5
c 6
'''
1.2 loc[‘d’]はインデックスが第’d’行であることを示す(indexは文字である)
import pandas as pd
data = [[1,2,3],[4,5,6]]
index = ['d','e']
columns=['a','b','c']
df = pd.DataFrame(data=data, index=index, columns=columns)
print df.loc['d']
'''
a 1
b 2
c 3
'''
1.3カラムデータをインデックスしたい場合は、このようにするとエラーが発生します.
import pandas as pd
data = [[1,2,3],[4,5,6]]
index = ['d','e']
columns=['a','b','c']
df = pd.DataFrame(data=data, index=index, columns=columns)
print df.loc['a']
'''
KeyError: 'the label [a] is not in the [index]'
'''
1.4 locは複数行のデータを取得できる
import pandas as pd
data = [[1,2,3],[4,5,6]]
index = ['d','e']
columns=['a','b','c']
df = pd.DataFrame(data=data, index=index, columns=columns)
print df.loc['d':]
'''
a b c
d 1 2 3
e 4 5 6
'''
1.5 loc拡張-行の列をインデックスする
import pandas as pd
data = [[1,2,3],[4,5,6]]
index = ['d','e']
columns=['a','b','c']
df = pd.DataFrame(data=data, index=index, columns=columns)
print df.loc['d',['b','c']]
'''
b 2
c 3
'''
1,6 loc拡張-インデックスのあるカラム
import pandas as pd
data = [[1,2,3],[4,5,6]]
index = ['d','e']
columns=['a','b','c']
df = pd.DataFrame(data=data, index=index, columns=columns)
print df.loc[:,['c']]
'''
c
d 3
e 6
'''
もちろん、ある列のデータを取得する最も直接的な方法はdfである.[カラムラベル]ですが、カラムラベルが不明な場合は、この方法でカラムデータを取得できます.なお、dataframeのインデックス[1:3]は、通常とは異なる1,2,3を含む.
2.iloc-行番号による行データの取得
2.1どのローを取得するか、そのローの数値を入力します.
import pandas as pd
data = [[1,2,3],[4,5,6]]
index = ['d','e']
columns=['a','b','c']
df = pd.DataFrame(data=data, index=index, columns=columns)
print df.loc[1]
'''
a 4
b 5
c 6
'''
2.2行タグインデックスによるエラーの報告
import pandas as pd
data = [[1,2,3],[4,5,6]]
index = ['d','e']
columns=['a','b','c']
df = pd.DataFrame(data=data, index=index, columns=columns)
print df.iloc['a']
'''
TypeError: cannot do label indexing on with these indexers [a] of
'''
2.3同じように行番号で複数行をインデックスできる
import pandas as pd
data = [[1,2,3],[4,5,6]]
index = ['d','e']
columns=['a','b','c']
df = pd.DataFrame(data=data, index=index, columns=columns)
print df.iloc[0:]
'''
a b c
d 1 2 3
e 4 5 6
'''
2.4 ilocインデックス列データ
import pandas as pd
data = [[1,2,3],[4,5,6]]
index = ['d','e']
columns=['a','b','c']
df = pd.DataFrame(data=data, index=index, columns=columns)
print df.iloc[:,[1]]
'''
b
d 2
e 5
'''
3.ix-最初の2つの混合インデックスを結合
3.1行番号索引による
import pandas as pd
data = [[1,2,3],[4,5,6]]
index = ['d','e']
columns=['a','b','c']
df = pd.DataFrame(data=data, index=index, columns=columns)
print df.ix[1]
'''
a 4
b 5
c 6
'''
3.2行ラベル索引
import pandas as pd
data = [[1,2,3],[4,5,6]]
index = ['d','e']
columns=['a','b','c']
df = pd.DataFrame(data=data, index=index, columns=columns)
print df.ix['e']
'''
a 4
b 5
c 6
'''
人工知能(Python、データ分析、機械学習、深さ学習、推薦システム、強化学習)を学びたいので、公衆番号AI派に来てみましょう!!