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