所以我的问题是如何根据另一个数据框的条件将新列中的数据添加到数据框中。很难说,所以我在这里举个例子
df1 columns a b c 0 10 1 10 15 3 15 20 5 df2 columns d e 3.3 10 5.5 20 14.5 11 17.2 5
我想在这里做的是将另一列 f 添加到 df2,它的值来自 df1 这样如果 d[i] 在 a[j] 和 b[j] 之间,则将值 c[j] 复制到df2 中的新列 f[i]。例如:d[1] = 5.5 所以 0< 5.5< 10 因此,f[1] 的值 = c[0] = 1
最终结果应该是这样的
df2 columns d e f 3.3 10 1 5.5 20 1 14.5 11 3 17.2 5 5
假设 a 和 b 中的间隔不重叠df1,您可以使用pd.cutwith a pd.IntervalIndex:
df1
pd.cut
pd.IntervalIndex
import pandas as pd # Your dfs here df1 = pd.read_clipboard() df2 = pd.read_clipboard() idx = pd.IntervalIndex.from_arrays(df1["a"], df1["b"]) mapping = df1["c"].set_axis(idx) df2["f"] = pd.cut(df2["d"], idx).map(mapping)
df2:
d e f 0 3.3 10 1 1 5.5 20 1 2 14.5 11 3 3 17.2 5 5