概述
在数据分析领域,Pandas是一个非常强大的工具,尤其在其DataFrame对象上提供了多种灵活的数据访问方式。本文将重点介绍三种主要的元素访问方法:iat
, loc
, 和 iloc
。
1. pandas.DataFrame.iat
该方法用于根据整数位置快速访问单个元素,适用于已知具体行号和列号的情况。
示例:
import pandas as pd
df = pd.DataFrame([[0, 2, 3], [0, 4, 1], [10, 20, 30]], columns=['A', 'B', 'C'])
print(df)
# 输出:
# A B C
# 0 0 2 3
# 1 0 4 1
# 2 10 20 30
print(df.iat[1, 2]) # 访问第2行第3列的元素
# 输出: 1
print(df.iloc[0].iat[1]) # 访问第一行第二个元素
# 输出: 2
2. pandas.DataFrame.loc
loc
方法允许使用标签来选择数据,这使得它在处理具有非数字索引的数据时特别有用。
示例:
df = pd.DataFrame([[1, 2], [4, 5], [7, 8]], index=['cobra', 'viper', 'sidewinder'], columns=['max_speed', 'shield'])
print(df)
# 输出:
# max_speed shield
# cobra 1 2
# viper 4 5
# sidewinder 7 8
print(df.loc['cobra', 'shield']) # 访问'cobra'行'shield'列的元素
# 输出: 2
print(df.loc['viper']) # 获取'viper'行的所有数据
# 输出:
# max_speed 4
# shield 5
# Name: viper, dtype: int64
print(df.loc[['viper', 'sidewinder']]) # 获取多行数据
# 输出:
# max_speed shield
# viper 4 5
# sidewinder 7 8
3. pandas.DataFrame.iloc
iloc
类似于 iat
,但支持更复杂的选择逻辑,如切片操作。
示例:
mydict = [{'a': 1, 'b': 2, 'c': 3, 'd': 4}, {'a': 100, 'b': 200, 'c': 300, 'd': 400}, {'a': 1000, 'b': 2000, 'c': 3000, 'd': 4000}]
df = pd.DataFrame(mydict)
print(df)
# 输出:
# a b c d
# 0 1 2 3 4
# 1 100 200 300 400
# 2 1000 2000 3000 4000
print(df.iloc[0, 1]) # 访问第1行第2列的元素
# 输出: 2
print(type(df.iloc[0])) # 获取第一行的数据类型
# 输出:
print(df.iloc[0]) # 获取第一行的数据
# 输出:
# a 1
# b 2
# c 3
# d 4
# Name: 0, dtype: int64