pandas - ( ix & loc & iloc )的区别

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
"""

猜你喜欢

转载自blog.csdn.net/poyue8754/article/details/82145963
今日推荐