搜索条件位于两个行值之间:识别较低和较高的值

时间:2018-04-03 10:29:46

标签: excel

我第一次使用Excel工作并寻找一个直观简单的命令,但我找不到任何东西。我在第1列中有5个不同的值,在第2列中有相应的值,它们表示A列中的现代化程度(以点为单位)和B列中房地产的剩余使用寿命(以年为单位)。由于A列的实现点可以位于行之间,因此我想识别所获得点的较低和较高值以计算加权平均值。

Degree of modernisation     Remaining useful life
          1                        22
          4                        27
          8                        34
          13                       43
          18                       52

更准确地说,在我的情况下,现代化程度为11,介于8和13之间。因此,较低的值为8,而下一个较高的值为13.您可以根据我的示例推荐哪些命令来识别这些值搜索号为11?

1 个答案:

答案 0 :(得分:0)

这是完整的解决方案。我把它分成了一个步骤,所以它应该是自我解释的。

import numpy as np
import pandas as pd

points = [
    {'coords': (100.5, 100), 'class': 1},
    {'coords': (300, 300), 'class':2},
    {'coords': (50, 200), 'class':4},
    {'coords': (550, 400), 'class':10},
    {'coords': (550, 300), 'class':1}
    ]

# pandas data frame
data = np.array([['x', 'y', 'class']])
for point in points:
    row = [point['coords'][0], point['coords'][1], point['class']] 
    data = np.vstack((data, row))


df = pd.DataFrame(data[1:],dtype=float)
df.columns = data[0:1].tolist()
df['mult'] = np.multiply(df['x'],df['y'])
df['mult']
    mult
0   10050.0
1   90000.0
2   10000.0
3   220000.0
4   165000.0

Google's deprecated