DataFrame.at
访问行/列标签对的单个值。
与loc
类似,两者都提供基于标签的查找。如果只需要获取或设置DataFrame或Series中的一个值,则使用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