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
这种有针对性的方法确保只有“First Season”列中的值满足条件替换为 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
以上是如何根据条件替换 Pandas DataFrame 列中的特定值?的详细内容。更多信息请关注PHP中文网其他相关文章!