用熊猫的列条件更改特定行中的值

我有一个df两列的数据框gender, score。


|---------------------|------------------|

|      gender         |     score        |

|---------------------|------------------|

|          male       |         34       |

|---------------------|------------------|

|          female     |         34       |

|---------------------|------------------|

|          male       |         34       |

|---------------------|------------------|

|          female     |         34       |

|---------------------|------------------|

|          male       |         34       |

|---------------------|------------------|

我想将男性(gender == 'male')的分数从第3行更改为第5行,以达到预期的输出:0


|---------------------|------------------|

|      gender         |     score        |

|---------------------|------------------|

|          male       |         34       |

|---------------------|------------------|

|          female     |         34       |

|---------------------|------------------|

|          male       |         0        |

|---------------------|------------------|

|          female     |         34       |

|---------------------|------------------|

|          male       |         0        |

|---------------------|------------------|

我iloc该如何结合这种状况?


森栏
浏览 135回答 2
2回答

BIG阳

Alt1:您可以使用两个遮罩(条件)来完成此操作。这应该是可读且有意义的。m1 = (df.gender == 'male')m2 = (df.gender.duplicated())df.loc[m1&m2, 'score'] = 0Alt2:切掉非零掩码的第一个真值(需要import numpy as np)。这应该更快。m = np.nonzero(df.gender=='male')[0][1:]df.loc[m, 'score'] = 0完整示例:import pandas as pdimport numpy as npdf = pd.DataFrame({    'gender': ['male','female','male','female','male'],    'score': 34})m1 = (df.gender == 'male')m2 = (df.gender.duplicated())m = np.nonzero(df.gender=='male')[0][1:]df.loc[m, 'score'] = 0print(df)返回值:   gender  score0    male     341  female     342    male      03  female     344    male      0

HUX布斯

我觉得你需要m=df.loc[2:5,:].loc[df['gender']=='male']df.loc[m.index,'score']=0print(df)    gender  score0   male    341   female  342   male    03   female  344   male    0
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python