微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python – Pandas DataFrame:根据条件替换列中的所有值

我有一个简单的DataFrame,如下所示:

我想从“第一季”列中选择所有值,并将那些超过1990年的值替换为1.在此示例中,只有Baltimore Ravens将1996年替换为1(保持其余数据完好无损).

我使用了以下内容

df.loc[(df['First Season'] > 1990)] = 1

但是,它将该行中的所有值替换为1,而不仅仅是“第一季”列中的值.

如何只替换该列中的值?

解决方法:

您需要选择该列:

In [41]:
df.loc[df['First Season'] > 1990, 'First Season'] = 1
df

Out[41]:
                 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

所以这里的语法是:

df.loc[<mask>(here mask is generating the labels to index) , <optional column(s)> ]

您可以查看docs以及显示语义的10 minutes to pandas

编辑

如果你想生成一个布尔指标,那么你可以使用布尔条件生成一个布尔系列并将dtype转换为int,这将分别将True和False转换为1和0:

In [43]:
df['First Season'] = (df['First Season'] > 1990).astype(int)
df

Out[43]:
                 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] 举报,一经查实,本站将立刻删除。

相关推荐