当我们使用Python Pandas处理数据时,有时会需要获取和修改数据中指定位置的值。Pandas提供了4种方法来实现这个目的,分别是at、iat、loc和iloc。
- at方法
at方法用于获取或修改DataFrame或Series中指定位置的值。其使用方式为df.at[row, col]或s.at[index],其中df为DataFrame,s为Series,row和col为DataFrame的行列名或数值索引,index为Series的标签索引。
示例1:
import pandas as pd
# 创建DataFrame
df = pd.DataFrame({
'A': [1, 2, 3],
'B': [4, 5, 6],
'C': [7, 8, 9]
})
# 修改指定位置的值
df.at[0, 'B'] = 10
print(df)
运行结果为:
A B C
0 1 10 7
1 2 5 8
2 3 6 9
示例2:
import pandas as pd
# 创建Series
s = pd.Series([1, 2, 3], index=['a', 'b', 'c'])
# 获取指定位置的值
value = s.at['b']
print(value)
运行结果为:
2
- iat方法
iat方法用于获取或修改DataFrame或Series中指定位置的值。它与at方法类似,区别在于iat方法使用行列的数值索引来定位数据。其使用方式为df.iat[row, col]或s.iat[index]。
示例1:
import pandas as pd
# 创建DataFrame
df = pd.DataFrame({
'A': [1, 2, 3],
'B': [4, 5, 6],
'C': [7, 8, 9]
})
# 获取指定位置的值
value = df.iat[0, 1]
print(value)
运行结果为:
4
示例2:
import pandas as pd
# 创建Series
s = pd.Series([1, 2, 3], index=['a', 'b', 'c'])
# 修改指定位置的值
s.iat[1] = 4
print(s)
运行结果为:
a 1
b 4
c 3
dtype: int64
- loc方法
loc方法用于获取或修改DataFrame或Series中指定标签的值。其使用方式为df.loc[row, col]或s.loc[index],其中df为DataFrame,s为Series,row和col为DataFrame的行列名或数值索引,index为Series的标签索引。
示例1:
import pandas as pd
# 创建DataFrame
df = pd.DataFrame({
'A': [1, 2, 3],
'B': [4, 5, 6],
'C': [7, 8, 9]
}, index=['a', 'b', 'c'])
# 修改指定位置的值
df.loc['a', 'B'] = 10
print(df)
运行结果为:
A B C
a 1 10 7
b 2 5 8
c 3 6 9
示例2:
import pandas as pd
# 创建Series
s = pd.Series([1, 2, 3], index=['a', 'b', 'c'])
# 获取指定标签的值
value = s.loc['b']
print(value)
运行结果为:
2
- iloc方法
iloc方法用于获取或修改DataFrame或Series中指定位置的值。它与loc方法类似,区别在于iloc方法使用行列的数值索引来定位数据。其使用方式为df.iloc[row, col]或s.iloc[index]。
示例1:
import pandas as pd
# 创建DataFrame
df = pd.DataFrame({
'A': [1, 2, 3],
'B': [4, 5, 6],
'C': [7, 8, 9]
})
# 获取指定位置的值
value = df.iloc[0, 1]
print(value)
运行结果为:
4
示例2:
import pandas as pd
# 创建Series
s = pd.Series([1, 2, 3], index=['a', 'b', 'c'])
# 修改指定位置的值
s.iloc[1] = 4
print(s)
运行结果为:
a 1
b 4
c 3
dtype: int64
以上就是Python Pandas如何获取和修改任意位置的值(at, iat, loc, iloc)的完整攻略,这4种方法适用于不同的数据类型和操作场景,使用前需仔细阅读文档了解其使用方法和注意事项。