rah*_*dbz 1 python numpy dataframe pandas
如何在 np.where() 中获得三个条件。通常它只使用两个条件我怎样才能得到三个。就像我需要创建一个新列 Better_Event ,根据夏季赛事和冬季赛事中赢得的奖牌总数之间的比较(即 Total_Summer 和 Total_Winter 列之间的比较)使用“np 来存储“夏季”、“冬季”或“两者” .where()”函数。
data['Better_Events'] = np.where(data['Total_Summer']>data['Total_Winter'],'Summer','Winter')
Run Code Online (Sandbox Code Playgroud)
上面的代码只有两个输出。我该如何将其更改为三个,其中 if data['Total_Summer']==data['Total_Winter'] 给出“两者”
你需要np.select:
这是一个例子:
df=pd.DataFrame({'Total_Summer':[1,2,3,3,6,7],'Total_Winter':[2,2,3,4,5,4]})
print(df)
Run Code Online (Sandbox Code Playgroud)
Total_Summer Total_Winter
0 1 2
1 2 2
2 3 3
3 3 4
4 6 5
5 7 4
Run Code Online (Sandbox Code Playgroud)
现在设置每个条件的条件和值:
cond=[df['Total_Summer']>df['Total_Winter'],df['Total_Summer']<df['Total_Winter'],df['Total_Summer'].eq(df['Total_Winter'])]
values=['Summer','Winter','Both']
df['Better_Events']=np.select(cond,values)
print(df)
Run Code Online (Sandbox Code Playgroud)
Total_Summer Total_Winter Better_Events
0 1 2 Winter
1 2 2 Both
2 3 3 Both
3 3 4 Winter
4 6 5 Summer
5 7 4 Summer
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2292 次 |
| 最近记录: |