我有一个简单的数据框架,如下所示:
我想从“第一季”列中选择所有值,并将超过1990年的值替换为1。在本例中,只有巴尔的摩乌鸦队将1996年的数据替换为1(保持其余数据不变)
我使用了以下方法:
df.loc[(df['第一季]>;1990)]=1
但是,它将该行中的所有值替换为1,而不仅仅是“第一季”列中的值
如何仅替换该列中的值
您需要选择该列:
[41]on
:
df.loc[df[‘第一季’]>;1990,‘第一季’]=1
df
Output[41]:
第一季全队比赛
0达拉斯牛仔队1960 894
1芝加哥熊队1920 1357
2台绿湾包装机1921 1339
3迈阿密海豚1966 792
4巴尔的摩乌鸦1326
5圣弗朗西索49ers 1950 1003
这里的语法是:
df.loc[<;mask>;(此处mask生成要索引的标签),<;可选列>;]
您可以查看文档,也可以查看显示语义的10分钟到熊猫
编辑
如果要生成布尔指示符,则可以使用布尔条件生成布尔序列,并将数据类型转换为int,这将分别将True和False转换为1和0:
[43]on
:
df['First Season']=(df['First Season']>;1990)。aType(int)
df
Output[43]:
第一季全队比赛
达拉斯牛仔队0 0 894
1芝加哥熊0 1357
2台绿湾封隔器0 1339
3只迈阿密海豚0 792
4巴尔的摩乌鸦1326
5圣弗朗西索490 1003