你可以使用下面的基本语法来根据一个条件替换pandas DataFrame中某一列的值:
#replace values in 'column1' that are greater than 10 with 20
df.loc[df['column1'] > 10, 'column1'] = 20
下面的例子展示了如何在实践中使用这种语法。
例1:基于一个条件替换列中的值
假设我们有下面这个pandas DataFrame:
import pandas as pd
#create DataFrame
df = pd.DataFrame({'team': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
'position': ['G', 'G', 'F', 'F', 'G', 'G', 'F', 'F'],
'points': [5, 7, 7, 9, 12, 13, 9, 14],
'assists': [3, 8, 2, 6, 6, 5, 9, 5]})
#view DataFrame
df
team position points assists
0 A G 5 3
1 A G 7 8
2 A F 7 2
3 A F 9 6
4 B G 12 6
5 B G 13 5
6 B F 9 9
7 B F 14 5
我们可以用下面的代码将'points'列中大于10的每个值替换为20的值:
#replace any values in 'points' column greater than 10 with 20
df.loc[df['points'] > 10, 'points'] = 20
#view updated DataFrame
df
team position points assists
0 A G 5 3
1 A G 7 8
2 A F 7 2
3 A F 9 6
4 B G 20 6
5 B G 20 5
6 B F 9 9
7 B F 20 5
请注意,"积分 "列中大于10的三个值都被替换成了20。
例2:基于多个条件替换列中的值
假设我们有下面这个pandas数据框架:
import pandas as pd
#create DataFrame
df = pd.DataFrame({'team': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
'position': ['G', 'G', 'F', 'F', 'G', 'G', 'F', 'F'],
'points': [5, 7, 7, 9, 12, 13, 9, 14],
'assists': [3, 8, 2, 6, 6, 5, 9, 5]})
#view DataFrame
df
team position points assists
0 A G 5 3
1 A G 7 8
2 A F 7 2
3 A F 9 6
4 B G 12 6
5 B G 13 5
6 B F 9 9
7 B F 14 5
我们可以使用下面的代码来替换'position'列中积分小于10或助攻小于5的每一个值,用字符串'Bad'替换:
#replace string in 'position' column with 'bad' if points < 10 or assists < 5
df.loc[(df['points'] < 10) | (df['assists'] < 5), 'position'] = 'Bad'
#view updated DataFrame
df
team position points assists
0 A Bad 5 3
1 A Bad 7 8
2 A Bad 7 2
3 A Bad 9 6
4 B G 20 6
5 B G 20 5
6 B Bad 9 9
7 B F 20 5
同样地,我们可以使用下面的代码将 "位置 "列中积分小于10和 助攻小于5的每个值替换为字符串 "坏":
#replace string in 'position' column with 'bad' if points < 10 and assists < 5
df.loc[(df['points'] < 10) & (df['assists'] < 5), 'position'] = 'Bad'
#view updated DataFrame
df
team position points assists
0 A Bad 5 3
1 A G 7 8
2 A Bad 7 2
3 A F 9 6
4 B G 12 6
5 B G 13 5
6 B F 9 9
7 B F 14 5
请注意,得分小于10和助攻小于5的两行的 "位置 "值被替换成了字符串 "坏"。
其他资源
下面的教程解释了如何在pandas中执行其他常见操作:
如何在Pandas中通过多个条件选择行
如何在Pandas中根据一个条件创建一个新的列
如何根据多个条件过滤Pandas数据框