【发布时间】:2025-11-29 06:30:01
【问题描述】:
我对如何正确地提出问题感到有些困惑。我有两个 Pandas 数据框:
data = {'ID':['A1','A1','A2','A2','A2'], 'FROM':[0,2,0,2,4], 'TO':[2,4,2,4,6], 'PYR' : [0.25,0.11,0.05,0,0.5]}
df = pd.DataFrame(data, columns = ['ID', 'FROM', 'TO', 'PYR'])
所以 df 看起来像这样:
ID FROM TO PYR
0 A1 0 2 0.25
1 A1 2 4 0.11
2 A2 0 2 0.05
3 A2 2 4 0.00
4 A2 4 6 0.50
第二个:
new_data = {'ID':['A1','A2','A2'], 'FROM':[0, 0, 3.5], 'TO':[4, 3.5, 6], 'STRAT':['TD3', 'J1','J2']}
df2 = pd.DataFrame(new_data, columns = ['ID', 'FROM', 'TO', 'STRAT'])
ID FROM TO STRAT
0 A1 0.0 4.0 TD3
1 A2 0.0 3.5 J1
2 A2 3.5 6.0 J2
我想要做的是将第二个数据帧中的 STRAT 添加到第一个数据帧。两个数据框的每个 id 都有相同的完整范围,但各个间隔明显不同。
我想要以这样的方式填写 STRAT,如果它与第一个数据帧的间隔的 50% 以上重叠,它将被分配到该间隔,因此预期结果如下所示:
ID FROM TO PYR STRAT
0 A1 0 2 0.25 TD3
1 A1 2 4 0.11 TD3
2 A2 0 2 0.05 J1
3 A2 2 4 0.00 J1
4 A2 4 6 0.50 J2
我不太确定如何解决这个问题。如果有人能指出我正确的方向,我将不胜感激。谢谢!
【问题讨论】:
标签: python pandas dataframe join