首页 >后端开发 >Python教程 >如何根据条件替换 Pandas DataFrame 列中的特定值?

如何根据条件替换 Pandas DataFrame 列中的特定值?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-02 20:41:02234浏览

How to Replace Specific Values in a Pandas DataFrame Column Based on Conditions?

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn