gpt4 book ai didi

python - 返回值大于但占参数

转载 作者:行者123 更新时间:2023-12-01 13:12:10 26 4
gpt4 key购买 nike

我想返回所有大于特定整数的值。但是,我有一个单独的列来确定大于应该的值。使用下面的 df,如果 DirectionRight,则应返回 X 大于 mainX 的所有行.如果 DirectionLeft,则应返回小于 X 的所有行。

df = pd.DataFrame({
'Time' : ['09:00:00.1','09:00:00.1','09:00:00.1','09:00:00.1','09:00:00.1','09:00:00.1','09:00:00.2','09:00:00.2','09:00:00.2','09:00:00.2','09:00:00.2','09:00:00.2'],
'Group' : ['I','J','I','J','I','J','I','J','I','J','I','J'],
'Label' : ['A','B','C','D','E','F','A','B','C','D','E','F'],
'X' : [8,4,3,8,7,4,7,3,3,4,6,1],
'Y' : [3,6,4,8,5,2,8,8,2,4,5,1],
'mainX' : [5,5,5,5,5,5,5,5,5,5,5,5],
'mainY' : [5,5,5,5,5,5,5,5,5,5,5,5],
'Direction' : ['Left','Right','Left','Right','Left','Right','Left','Right','Left','Right','Left','Right']
})

def greater(df):

for val in df['Direction']:

if val == 'Right':
Forward = df[df['X'] > df['mainX']]

elif val == 'Left':
Forward = df[df['X'] < df['mainX']]

else:
continue

return Forward

df1 = greater(df)

输出:

          Time Group Label  X  Y  mainX  mainY Direction
1 09:00:00.1 J B 4 6 5 5 Right
2 09:00:00.1 I C 3 4 5 5 Left
5 09:00:00.1 J F 4 2 5 5 Right
7 09:00:00.2 J B 3 8 5 5 Right
8 09:00:00.2 I C 3 2 5 5 Left
9 09:00:00.2 J D 4 4 5 5 Right
11 09:00:00.2 J F 1 1 5 5 Right

目的:

          Time Group Label  X  Y  mainX  mainY Direction
1 09:00:00.1 I C 3 4 5 5 Left
2 09:00:00.1 J D 8 8 5 5 Right
3 09:00:00.2 I C 3 2 5 5 Left

最佳答案

设置你的条件并使用loc:

cond1 = (df["Direction"].eq("Right"))&(df["X"]>df["mainX"])
cond2 = (df["Direction"].eq("Left"))&(df["X"]<df["mainX"])

print (df.loc[cond1|cond2])

#
Time Group Label X Y mainX mainY Direction
2 09:00:00.1 I C 3 4 5 5 Left
3 09:00:00.1 J D 8 8 5 5 Right
8 09:00:00.2 I C 3 2 5 5 Left

关于python - 返回值大于但占参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59260814/

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