我有一个包含球员,薪水和得分的数据框,并且希望标记薪水较高且得分低于该数据帧中任何其他球员的条目。
我是python新手,所以我在思考这个问题上可能还很遥远。
import pandas as pd
df = pd.DataFrame([['A',12000,100],['B',13000,110],['C',13300,105],['D',12500,102],['E',11800,101]],columns=['Player','Salary','Score'])
df['OverPriced']= (df['Score'].iloc[:]>df['Score'] & df['Salary'].iloc[:]<df['Salary']).count()
Print(df)
我希望看到以下内容:
Player Salary Score Overpriced
0 A 12000 100 1
1 B 13000 110 0
2 C 13300 105 1
3 D 12500 102 0
4 E 11800 101 0
答案 0 :(得分:1)
我正在使用numpy
此处播报的any
import numpy as np
s1=df.Salary.values
s2=df.Score.values
df['Overpriced']=np.any((s1>s1[:,None])&(s2<s2[:,None]),0).astype(int)
df
Out[377]:
Player Salary Score Overpriced
0 A 12000 100 1
1 B 13000 110 0
2 C 13300 105 1
3 D 12500 102 0
4 E 11800 101 0