Pandas DataFrame:基于条件的目标值替换
在Pandas中,通常需要根据某些条件修改DataFrame中的特定值。虽然常见的方法是使用 loc 来选择行,但了解如何精确定位特定列进行值修改至关重要。
考虑以下 DataFrame,我们希望在其中替换“第一季”中的值超过 1990 且整数为 1 的列:
Team First Season Total Games 0 Dallas Cowboys 1960 894 1 Chicago Bears 1920 1357 2 Green Bay Packers 1921 1339 3 Miami Dolphins 1966 792 4 Baltimore Ravens 1996 326 5 San Franciso 49ers 1950 1003
仅使用 loc 函数的初步尝试导致替换所选行中的所有值,而不仅仅是目标列。为了纠正这个问题,我们需要明确指定 'First Season' 列作为 loc 的第二个参数:
df.loc[df['First Season'] > 1990, 'First Season'] = 1
这种有针对性的方法确保只有“第一赛季”列中满足条件的值被替换为 1,而其他列不受影响。
Team First Season Total Games 0 Dallas Cowboys 1960 894 1 Chicago Bears 1920 1357 2 Green Bay Packers 1921 1339 3 Miami Dolphins 1966 792 4 Baltimore Ravens 1 326 5 San Franciso 49ers 1950 1003
或者,如果所需结果是布尔指标,您可以使用条件创建布尔系列并将其转换为整数,其中 True 和 False 分别转换为 1 和 0 :
df['First Season'] = (df['First Season'] > 1990).astype(int)
此方法生成具有更新值的 DataFrame:
Team First Season Total Games 0 Dallas Cowboys 0 894 1 Chicago Bears 0 1357 2 Green Bay Packers 0 1339 3 Miami Dolphins 0 792 4 Baltimore Ravens 1 326 5 San Franciso 49ers 0 1003
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3