gpt4 book ai didi

python - 在 Pandas DataFrame 中创建一列,用于计算大于或小于当前行的所有行

转载 作者:行者123 更新时间:2023-12-01 08:08:11 29 4
gpt4 key购买 nike

我有一个包含球员、薪水和分数的数据帧,并且希望标记薪水高于数据帧中任何其他球员且分数低于数据帧中任何其他球员的条目。

我是一个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

最佳答案

我在这里使用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

关于python - 在 Pandas DataFrame 中创建一列,用于计算大于或小于当前行的所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55427625/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com