【发布时间】:2021-10-25 18:09:33
【问题描述】:
我有一个输入 DataFrame,我想修改它的“Spcx”列之一,为此我定义了一个升序排序列表“Spaces”
import pandas as pd
import numpy as np
if __name__ == "__main__":
Example = [[ 0],
[ 0],
[0.14],
[0.10],
[0.10],
[0.10],
[0.13],
[0.16],
[0.24],
[0.21],
[0.14],
[0.14]]
Example = pd.DataFrame(data = Example, columns = ['Spcx'])
Spaces = [0, 0.100, 0.125, 0.150, 0.175, 0.200, 0.225, 0.250, 0.275, 0.300]
Spaces = np.array(Spaces) # convert to numpy array
Example["Spcx"] = Spaces[np.searchsorted(Spaces, Example["Spcx"], side = 'left')]
我正在寻找的是每个 Example ['Spcx'] 与'Spaces'的每个区间进行比较并取左侧的值,例如:
0 - -> 空格 [0 - 0.100] - -> 0
0.10 - -> 空格 [0.100 - 0.125] - -> 0.100
0.14 - -> 空格 [0.125 - 0.150] - -> 0.125
应该是这样的:
Spcx
0
0
0.125
0.1
0.1
0.1
0.125
0.15
0.225
0.2
0.125
0.125
【问题讨论】:
标签: python python-3.x pandas numpy