详解pandas中iloc、loc和ix的区别和联系
在pandas中,iloc、loc和ix都是数据筛选或访问数据的常用方法,但它们有着不同的用法和功能。在本篇攻略中,我们将详细讲解这三个方法的区别和联系。
iloc
iloc是根据行索引和列索引来选取数据的方法,它可以接受整数和切片对象作为行或列的索引。
使用整数索引
选取单行或单列时,iloc需要把行或列的索引转换为整数索引,以便进行数据的获取。
示例:
import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3],
'B': [4, 5, 6],
'C': [7, 8, 9]})
print(df.iloc[0]) # 选取第一行数据
print(df.iloc[:, 1]) # 选取第二列数据
输出:
A 1
B 4
C 7
Name: 0, dtype: int64
0 4
1 5
2 6
Name: B, dtype: int64
此处iloc[0]
选取了第一行数据,而iloc[:, 1]
选取了第二列数据。
使用切片对象
当需要选取连续的多行或多列时,iloc可以使用切片对象。
示例:
import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3],
'B': [4, 5, 6],
'C': [7, 8, 9],
'D': [10, 11, 12]})
print(df.iloc[0:2, 1:3]) # 选取第一、二行和第二、三列数据
输出:
B C
0 4 7
1 5 8
此处iloc[0:2, 1:3]
选取了第一、二行和第二、三列数据。
loc
loc是根据行标签和列标签来选取数据的方法,它可以接受标签和切片对象作为行或列的索引。
使用标签
选取单行或单列时,loc需要使用标签进行数据的获取。
示例:
import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3],
'B': [4, 5, 6],
'C': [7, 8, 9]},
index=['a', 'b', 'c'])
print(df.loc['a']) # 选取index为'a'的行数据
print(df.loc[:, 'B']) # 选取列标签为'B'的列数据
输出:
A 1
B 4
C 7
Name: a, dtype: int64
a 4
b 5
c 6
Name: B, dtype: int64
此处loc['a']
选取了index为'a'的行数据,而loc[:, 'B']
选取了列标签为'B'的列数据。
使用切片对象
当需要选取连续的多行或多列时,loc可以使用切片对象。
示例:
import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3],
'B': [4, 5, 6],
'C': [7, 8, 9],
'D': [10, 11, 12]},
index=['a', 'b', 'c'])
print(df.loc['a':'b', 'B':'C']) # 选取index为'a'至'b'的行和列标签为'B'至'C'的列数据
输出:
B C
a 4 7
b 5 8
此处loc['a':'b', 'B':'C']
选取了index为'a'至'b'的行和列标签为'B'至'C'的列数据。
ix
ix是结合了iloc和loc的功能的方法,它使用标签和整数都可以进行选取。
使用整数索引和标签
示例:
import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3],
'B': [4, 5, 6],
'C': [7, 8, 9],
'D': [10, 11, 12]},
index=['a', 'b', 'c'])
print(df.ix[0]) # 选取第一行数据
print(df.ix['a']) # 选取index为'a'的行数据
print(df.ix[:, 1]) # 选取第二列数据
print(df.ix['a':'b', 'B':'C']) # 选取index为'a'至'b'的行和列标签为'B'至'C'的列数据
输出:
A 1
B 4
C 7
D 10
Name: a, dtype: int64
A 1
B 4
C 7
D 10
Name: a, dtype: int64
a 4
b 5
c 6
Name: B, dtype: int64
B C
a 4 7
b 5 8
此处列出了使用整数索引和标签的多种情况。
总结
- iloc使用整数索引来选取数据,可以使用整数或切片对象作为索引。
- loc使用标签来选取数据,可以使用标签或切片对象作为索引。
- ix既可以使用整数索引,也可以使用标签来选取数据,灵活性更高。
在选择使用这三个方法时,需要根据具体需求来选用合适的方法,以便获取更为高效和准确的数据。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解pandas中iloc, loc和ix的区别和联系 - Python技术站