pandas - 在列上应用函数,使用第二个数据框作为函数的输入?
pandas - apply a function on column, using a second dataframe as an input for the function?
寻找最快和最 pandas
集中的方式来执行以下操作:
support=
Values Confidence R/S
10 3 S
20 6 S
40 10 S
35 12 S
df =
name strike
xyz 12
dfg 6
ghf 40
目标:获取从support
到df
最近的大于0的行。
预期输出:
df =
name strike support
xyz 12 [10, 3, S, 2]
dfg 6 [0, 0, S, 0] # as there is no > 0 value when subtracting strike from support
ghf 40 [35, 12, S, 5]
奖励:将列扩展到相关列中。
我可以通过遍历攻击来做到这一点,想知道是否有 better/faster 方法来实现我想做的事情。
pd.merge_asof(df.sort_values('strike'), # must be sorted by key
support.sort_values('Values'), # must be sorted by key
left_on='strike',
right_on='Values',
direction='backward', # default, so `Values <= strike`
allow_exact_matches=False # so that `Values != strike`
)
输出:
name strike Values Confidence R/S
0 dfg 6 NaN NaN NaN
1 xyz 12 10.0 3.0 S
2 ghf 40 35.0 12.0 S
寻找最快和最 pandas
集中的方式来执行以下操作:
support=
Values Confidence R/S
10 3 S
20 6 S
40 10 S
35 12 S
df =
name strike
xyz 12
dfg 6
ghf 40
目标:获取从support
到df
最近的大于0的行。
预期输出:
df =
name strike support
xyz 12 [10, 3, S, 2]
dfg 6 [0, 0, S, 0] # as there is no > 0 value when subtracting strike from support
ghf 40 [35, 12, S, 5]
奖励:将列扩展到相关列中。
我可以通过遍历攻击来做到这一点,想知道是否有 better/faster 方法来实现我想做的事情。
pd.merge_asof(df.sort_values('strike'), # must be sorted by key
support.sort_values('Values'), # must be sorted by key
left_on='strike',
right_on='Values',
direction='backward', # default, so `Values <= strike`
allow_exact_matches=False # so that `Values != strike`
)
输出:
name strike Values Confidence R/S
0 dfg 6 NaN NaN NaN
1 xyz 12 10.0 3.0 S
2 ghf 40 35.0 12.0 S