Python pandas.DataFrame.at函数方法的使用

pandas.DataFrame.at 是一个用于访问和设置 DataFrame 单个值的方法。它基于行和列标签进行访问,通常比 loc 更快,因为 at 专门用于单个元素的访问。本文主要介绍一下Pandas中pandas.DataFrame.at方法的使用。

DataFrame.at

访问行/列标签对的单个值。

loc类似,两者都提供基于标签的查找。如果只需要获取或设置DataFrameSeries中的一个值,则使用at。

Raises:

KeyError

当DataFrame中不存在label时

例子

1)访问单个值

import pandas as pd

# 创建一个示例 DataFrame
data = {
    'A': [1, 2, 3],
    'B': [4, 5, 6],
    'C': [7, 8, 9]
}
df = pd.DataFrame(data, index=['row1', 'row2', 'row3'])

# 使用 at 访问单个值
value = df.at['row2', 'B']
print("Value at row2, column B:", value)
# 输出: Value at row2, column B: 5

2)设置单个值

import pandas as pd

# 创建一个示例 DataFrame
data = {
    'A': [1, 2, 3],
    'B': [4, 5, 6],
    'C': [7, 8, 9]
}
df = pd.DataFrame(data, index=['row1', 'row2', 'row3'])

# 使用 at 设置单个值
df.at['row2', 'B'] = 10
print("Updated DataFrame:\n", df)
# 输出:
# Updated DataFrame:
#        A   B  C
# row1   1   4  7
# row2   2  10  8
# row3   3   6  9

3)结合条件设置值

import pandas as pd

# 创建一个示例 DataFrame
data = {
    'A': [1, 2, 3],
    'B': [4, 5, 6],
    'C': [7, 8, 9]
}
df = pd.DataFrame(data, index=['row1', 'row2', 'row3'])

# 结合条件使用 at 设置单个值
if df.at['row2', 'B'] == 5:
    df.at['row2', 'B'] = 10

print("Updated DataFrame with condition:\n", df)
# 输出:
# Updated DataFrame with condition:
#        A   B  C
# row1   1   4  7
# row2   2  10  8
# row3   3   6  9

4)使用示例

import pandas as pd

# 创建一个示例 DataFrame
df = pd.DataFrame([[0, 2, 3], [0, 4, 1], [10, 20, 30]],
                  index=[4, 5, 6], columns=['A', 'B', 'C'])
print(df)
# 输出:
#     A   B   C
# 4   0   2   3
# 5   0   4   1
# 6  10  20  30

# 获取指定行/列对的值
value = df.at[4, 'B']
print("Value at row 4, column 'B':", value)
# 输出: Value at row 4, column 'B': 2

# 将值设置为指定的行/列对
df.at[4, 'B'] = 10
new_value = df.at[4, 'B']
print("New value at row 4, column 'B':", new_value)
# 输出: New value at row 4, column 'B': 10

# 获取Series中的值
series_value = df.loc[5].at['B']
print("Value at row 5, column 'B':", series_value)
# 输出: Value at row 5, column 'B': 4

# 输出更新后的 DataFrame
print("Updated DataFrame:\n", df)
# 输出:
#     A   B   C
# 4   0  10   3
# 5   0   4   1
# 6  10  20  30

推荐阅读
cjavapy编程之路首页