你可以使用以下基本语法来设置pandas DataFrame中特定单元格的值:
#set value at row index 0 and column 'col_name' to be 99
df.at[0, 'col_name'] = 99
下面的例子展示了如何通过以下pandas DataFrame实际使用这种语法:
import pandas as pd
#create DataFrame
df = pd.DataFrame({'points': [25, 12, 15, 14, 19, 23, 25, 29],
'assists': [5, 7, 7, 9, 12, 9, 9, 4],
'rebounds': [11, 8, 10, 6, 6, 5, 9, 12]})
#view DataFrame
df
points assists rebounds
0 25 5 11
1 12 7 8
2 15 7 10
3 14 9 6
4 19 12 6
5 23 9 5
6 25 9 9
7 29 4 12
例1:设置潘达斯中一个单元格的值
下面的代码显示了如何将 "points "列的第3个索引位置的值设置为99:
#set value in 3rd index position and 'points' column to be 99
df.at[3, 'points'] = 99
#view updated DataFrame
df
points assists rebounds
0 25 5 11
1 12 7 8
2 15 7 10
3 99 9 6
4 19 12 6
5 23 9 5
6 25 9 9
7 29 4 12
请注意,"积分 "列的第3个索引位置的值被改变了,而DataFrame中的所有其他值都没有变化。
例2:在Pandas中设置多个单元格的值
下面的代码展示了如何同时设置一个区域中多个单元格的值:
#set values in index positions 0 to 3 in 'points' column to be 99
df.at[0:3, 'points'] = 99
#view updated DataFrame
df
points assists rebounds
0 99 5 11
1 99 7 8
2 99 7 10
3 99 9 6
4 19 12 6
5 23 9 5
6 25 9 9
7 29 4 12
例3:在潘达斯中有条件地设置数值
下面的代码展示了如何将 "篮板 "列中的值设置为99,只有当积分列中的值大于20的时候:
#set values in 'rebounds' column to be 99 if value in points column is greater than 20
df.loc[df['points']>20, ['rebounds']] = 99
#view updated DataFrame
df
points assists rebounds
0 25 5 99
1 12 7 8
2 15 7 10
3 14 9 6
4 19 12 6
5 23 9 99
6 25 9 99
7 29 4 99
请注意,如果积分列中的值大于20,篮板列中的每个值都被改为99。
所有其他数值都保持不变。
其他资源
下面的教程解释了如何在pandas中执行其他常用函数:
如何从Pandas数据框架中获取单元格值
如何获取Pandas数据框架的第一行
如何获取Pandas数据框架的第一列
如何在Pandas中获取列与值匹配的行的索引