到目前为止,我的数据框如下所示:
ID Area Stage
1 P X
2 Q X
3 P X
4 Q Y
Run Code Online (Sandbox Code Playgroud)
对于舞台等于“X”的每一行,我想用“P”替换区域“Q”。
所以结果应该是这样的:
ID Area Stage
1 P X
2 P X
3 P X
4 Q Y
Run Code Online (Sandbox Code Playgroud)
我试过:
data.query('Stage in ["X"]')['Area']=data.query('Stage in ["X"]')['Area'].replace('Q','P')
Run Code Online (Sandbox Code Playgroud)
这是行不通的。帮助表示赞赏!:)
您可以使用 2 个布尔条件并使用loc:
df.loc[df['Area'].eq("Q") & df['Stage'].eq('X'),'Area']='P'
print(df)
Run Code Online (Sandbox Code Playgroud)
ID Area Stage
0 1 P X
1 2 P X
2 3 P X
3 4 Q Y
Run Code Online (Sandbox Code Playgroud)
或者np.where
df['Area'] = np.where(df['Area'].eq("Q") & df['Stage'].eq('X'),'P',df['Area'])
Run Code Online (Sandbox Code Playgroud)
您可以使用loc指定要替换的位置,并将替换的系列传递给作业:
df.loc[df['Stage']=='X', 'Area'] = df['Area'].replace('Q','P')
Run Code Online (Sandbox Code Playgroud)
输出:
ID Area Stage
0 1 P X
1 2 P X
2 3 P X
3 4 Q Y
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
348 次 |
| 最近记录: |