python - 根据条件将新数据从另一个 Dataframe 添加到 Dataframe

标签 python pandas dataframe

所以我的问题是如何根据另一个数据框的条件将新列中的数据添加到数据框中。这很难说,所以我在这里举个例子

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.cutpd.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/

相关文章:

python - 将原始图像与可能不需要原始图像的编辑图像进行比较的另一种方法

python - 对于每一天,使用 Python 从第一行中减去最后一行

python - 使用 networkx 函数添加边

python - 使用 Eclipse/Pydev 记录 python

python - 如何通过比较值范围来合并两个 pandas 数据帧(或传输值)

python - Pandas - 将列值拆分为新列

python - 将数据框中的多列展平为一列

python - 如何对格式错误的 pandas Dataframe 列进行排序?

c - 跨两个字节写入位

python - docker 中的 django 迁移权限被拒绝