Python Pandas如何获取和修改任意位置的值(at,iat,loc,iloc)

  • Post category:Python

当我们使用Python Pandas处理数据时,有时会需要获取和修改数据中指定位置的值。Pandas提供了4种方法来实现这个目的,分别是at、iat、loc和iloc。

  1. 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
  1. 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
  1. 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
  1. 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种方法适用于不同的数据类型和操作场景,使用前需仔细阅读文档了解其使用方法和注意事项。