小编Mar*_*rco的帖子

在pandas数据帧中查找每行的两列列表中哪一列的最快方法

我正在寻找最快的方法来做到以下几点:

我们有一个pd.DataFrame:

df = pd.DataFrame({
    'High': [1.3,1.2,1.1],
    'Low': [1.3,1.2,1.1],
    'High1': [1.1, 1.1, 1.1],
    'High2': [1.2, 1.2, 1.2],
    'High3': [1.3, 1.3, 1.3],
    'Low1': [1.3, 1.3, 1.3],
    'Low2': [1.2, 1.2, 1.2],
    'Low3': [1.1, 1.1, 1.1]})
Run Code Online (Sandbox Code Playgroud)

看起来像:

In [4]: df
Out[4]:
   High  High1  High2  High3  Low  Low1  Low2  Low3
0   1.3    1.1    1.2    1.3  1.3   1.3   1.2   1.1
1   1.2    1.1    1.2    1.3  1.2   1.3   1.2   1.1
2   1.1    1.1    1.2    1.3  1.1   1.3   1.2   1.1
Run Code Online (Sandbox Code Playgroud)

我想知道的是High1,High2,High3浮点值中的哪一个是大于或等于High值的第一个.如果没有,那应该是np.nan

对于Low1,Low2,Low3值也是如此,但在这种情况下,其中一个是第一个低于或等于High值的值.如果没有,那应该是np.nan

最后,我需要知道哪一个,低或高是第一个.

解决这个问题的一种方法是以一种奇怪而不太高效的方式:

df['LowIs'] = np.nan …
Run Code Online (Sandbox Code Playgroud)

python performance numpy vectorization pandas

5
推荐指数
1
解决办法
112
查看次数

标签 统计

numpy ×1

pandas ×1

performance ×1

python ×1

vectorization ×1