如何设置 pandas dataframe 中特定单元格的值


您可以使用以下基本语法来设置 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

#createDataFrame
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:设置 Pandas 中单元格的值

以下代码显示如何将“points”列的第三个索引位置的值设置为 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

请注意,“points”列的第三个索引位置中的值已更改,并且 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:在 Pandas 中有条件地设置值

下面的代码展示了如何仅当points列中的值大于20时将“rebounds”列中的值设置为99:

 #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 DataFrame 获取单元格值
如何获取 Pandas DataFrame 的第一行
如何从 Pandas DataFrame 获取第一列
如何获取列与 Pandas 中的值匹配的行的索引

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注