一、现象
在用Pandas库处理数据的时候,久而久之不用loc跟iloc,难免会有些混乱记混
二、解决方案
在Pandas中,loc
和iloc
是两种常用的数据选择方法,它们的主要区别在于索引方式:
loc
:基于标签的索引,它使用行标签和列标签进行选择。iloc
:基于整数位置的索引,它使用行和列的整数索引进行选择。
案例
假设我们有以下DataFrame:
import pandas as pd
# 创建一个DataFrame
data = {
'Name': ['Tom', 'Nick', 'Julia', 'John'],
'Age': [20, 21, 19, 18],
'City': ['New York', 'Los Angeles', 'Chicago', 'Houston']
}
df = pd.DataFrame(data)
# 显示DataFrame
print(df)
输出:
Name Age City
0 Tom 20 New York
1 Nick 21 Los Angeles
2 Julia 19 Chicago
3 John 18 Houston
使用loc
如果你想选择名字为"Nick"的行和"Age"列:
print(df.loc[df['Name'] == 'Nick', 'Age'])
输出:
1 21
Name: Age, dtype: int64
使用iloc
如果你想选择第二行和第一列:
print(df.iloc[1, 0])
输出:
Nick
如果你想选择第二行的所有列:
print(df.iloc[1])
输出:
Name Nick
Age 21
City Los Angeles
Name: 1, dtype: object
如果你想选择第一列的所有行:
print(df.iloc[:, 0])
输出:
0 Tom
1 Nick
2 Julia
3 John
Name: Name, dtype: object
简单总结
loc
:使用标签索引,适合于你清楚知道行和列的标签名称时使用。iloc
:使用整数索引,适合于你清楚知道行和列的位置时使用。
选择使用loc
还是iloc
主要取决于你的具体需求和数据的索引情况。