所以我的问题是如何根据另一个数据框的条件将新列中的数据添加到数据框中。这很难说,所以我在这里举个例子
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
非常感谢任何帮助!
问候,
史蒂夫
最佳答案
假设 df1
a 和 b 中的间隔不重叠,您可以使用 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
关于python - 根据条件将新数据从另一个 Dataframe 添加到 Dataframe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75263740/