所以我的问题是如何根据另一个数据框的条件将新列中的数据添加到数据框中。这很难说,所以我在这里举个例子
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
最终结果应该是这样的
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
https://stackoverflow.com/questions/75263740/
相关文章:
c++ - 是不是 vector.at(vector.size()-1) 比 vector.back
sql-server-2005 - 强制 SQL Server 列为特定值
python - 查找给定范围内的数字,使给定列表中任何元素的数字的 gcd 始终为 1
wpf - ListBox 中的 TextBox、Button 和 ListBox
.net - .NET : System. InvalidOperationException :
sql-server - 从现有数据库生成 SQL DDL 和内容的工具
fortran - Fortran 能否在逻辑运算中强制遵守参数顺序?