【发布时间】:2023-01-09 04:50:51
【问题描述】:
映射器数据框
col_data = {'p0_tsize_qbin_':[1, 2, 3, 4, 5] ,
'p0_tsize_min':[0.0, 7.0499999999999545, 16.149999999999977, 32.65000000000009, 76.79999999999973] ,
'p0_tsize_max':[7.0, 16.100000000000023, 32.64999999999998, 76.75, 6759.850000000006]}
map_df = pd.DataFrame(col_data, columns = ['p0_tsize_qbin_', 'p0_tsize_min','p0_tsize_max'])
map_df
在上面的数据框中是map_df,其中第 2 列和第 3 列是范围,第 1 列是新数据框的映射器值。
主数据框
raw_data = {
'id': ['1', '2', '2', '3', '3','1', '2', '2', '3', '3','1', '2', '2', '3', '3'],
'val' : [3, 56, 78, 11, 5000,37, 756, 78, 49, 21,9, 4, 14, 75, 31,]}
df = pd.DataFrame(raw_data, columns = ['id', 'val','p0_tsize_qbin_mapped'])
df
预期输出以蓝色标记
在 map_df min(column1) 和 max(columns2) 中查找 df 数据帧的 val,无论它位于何处,都会获得 p0_tsize_qbin_ 值。
例如:来自 df 数据帧 val = 3,位于 p0_tsize_minp0_tsize_max 的范围内,其中 p0_tsize_qbin_ ==1。所以 1 会回来
【问题讨论】:
标签: python-3.x pandas dataframe range-map