loc —— 通过行标签索引行数据
iloc —— 通过行号索引行数据
ix —— 通过行标签或者行号索引行数据(基于loc和iloc的混合)
同理,索引列数据也是如此
1.分别使用loc、iloc、ix、索引第一行数据
(1)loc
import pandas as pd
data = [[1,2,3],[4,5,6]]
index = ['a','b'] # 行号
columns = ['c','d','e'] # 列号
df = pd.DataFrame(data, index, columns)
print(df.loc['a'])
"""
c 1
d 2
e 3
Name: a, dtype: int64
"""
# 如果暗战行号索引就会错误
print(df.loc[0])
"""
TypeError: cannot do label indexing on <class 'pandas.core.indexes.base.Index'>
with these indexers [0] of <class 'int'>
"""
(2) iloc
import pandas as pd
data = [[1,2,3],[4,5,6]]
index = ['a','b']
columns = ['c','d','e']
df = pd.DataFrame(data, index, columns)
print(df.iloc[0])
"""
c 1
d 2
e 3
Name: a, dtype: int64
"""
print(df.iloc['a'])
"""
TypeError: cannot do positional indexing on <class 'pandas.core.indexes.base.Index'>
with these indexers [a] of <class 'str'>
"""
(3) ix
import pandas as pd
data = [[1,2,3],[4,5,6]]
index = ['a','b']
columns = ['c','d','e']
df = pd.DataFrame(data, index, columns)
print(df.ix['a'])
"""
c 1
d 2
e 3
Name: a, dtype: int64
"""
print(df.ix[0])
"""
c 1
d 2
e 3
Name: a, dtype: int64
"""
2.分别使用loc、iloc、ix索引第一列的数据:
import pandas as pd
data = [[1,2,3],[4,5,6]]
index = ['a','b']
columns = ['c','d','e']
df = pd.DataFrame(data, index, columns)
print(df.loc[:,['c']])
print(df.iloc[:,[0]])
print(df.ix[:,['c']])
print(df.ix[:,[0]])
# 结果都为如下所示:
"""
c
a 1
b 4
"""
3.分别使用loc、iloc、ix索引多行的数据
import pandas as pd
data = [[1,2,3],[4,5,6]]
index = ['a','b']
columns = ['c','d','e']
df = pd.DataFrame(data, index, columns)
print(df.loc['a':'b'])
print(df.iloc[0:1])
print(df.ix['a':'b'])
print(df.ix[0:1])
# 结果都为如下所示:
"""
c d e
a 1 2 3
b 4 5 6
"""
4.分别使用loc、iloc、ix、索引多列的数据
import pandas as pd
data = [[1,2,3],[4,5,6]]
index = ['a','b']
columns = ['c','d','e']
df = pd.DataFrame(data, index, columns)
print(df.loc[:,'c':'d'])
print(df.iloc[:,0:2])
print(df.ix[:,'c':'d'])
print(df.ix[:,0:2])
# 结果都为如下所示:
"""
c d
a 1 2
b 4 5
"""