我有点迷失在这里,不知道如何继续下go . 基本上,我有两个我从CSV文件读取的文件.

data = {'A': [0,11,21,31,41,51,61],
        'B': [10,20,30,40,50,60,70]}

data2 = {'Point': [11.5, 18.3, 31.3, 41.2, 51.5, 66.6, 34.7, 12.1, 14.4, 56.8, 54.3]}

df = pd.DataFrame(data)
df2 = pd.DataFrame(data2)

我试图做的是找出df2中的点是否在数据的列A和B的范围内,并返回(A + B),作为另一列添加到df.第一个例子11.5,我应该得到11 + 20的结果,并添加到新列婴儿值

所以输出结果是这样的

Point   :    Returned_Data
11.5             31
18.3             31
31.3             71
and so on

我遇到的问题是合并或合并范围或两个具有不同列和行长度的DataFrame. 我知道如何使用np.在哪里匹配值,但如何做我做上面,也try 使用bin,但这给了我回范围而不是值.

 range = [0,11,21,31,41,51,61]
 df['Returned_Data'] = pd.cut (x=check[list], bins =range)
    A   B Returned_Data
0   0  10       (0, 11]
1  11  20      (11, 21]
2  21  30      (21, 31]

任何帮助将不胜感激.谢谢

推荐答案

IntervalIndex,然后用reindex创建一系列间隔:

s = (df[['A', 'B']].sum(axis=1)
     .set_axis(pd.IntervalIndex.from_arrays(df['A'], df['B']))
     )

out = s.reindex(df2['Point']).reset_index(name='Returned Data')

输出:

    Point  Returned Data
0    11.5             31
1    18.3             31
2    31.3             71
3    41.2             91
4    51.5            111
5    66.6            131
6    34.7             71
7    12.1             31
8    14.4             31
9    56.8            111
10   54.3            111

Python相关问答推荐

2维数组9x9,不使用numpy.数组(MutableSequence的子类)

根据不同列的值在收件箱中移动数据

如何使用matplotlib在Python中使用规范化数据和原始t测试值创建组合热图?

图像 pyramid .难以创建所需的合成图像

Pandas—合并数据帧,在公共列上保留非空值,在另一列上保留平均值

关于Python异步编程的问题和使用await/await def关键字

Django REST Framework:无法正确地将值注释到多对多模型,不断得到错误字段名称字段对模型无效'<><>

部分视图的DataFrame

Python+线程\TrocessPoolExecutor

pandas:排序多级列

创建可序列化数据模型的最佳方法

如何使用SentenceTransformers创建矢量嵌入?

为什么\b在这个正则表达式中不解释为反斜杠

跳过嵌套JSON中的级别并转换为Pandas Rame

有没有办法在不先将文件写入内存的情况下做到这一点?

我可以不带视频系统的pygame,只用于游戏手柄输入吗?''

在round函数中使用列值

是否需要依赖反转来确保呼叫方和被呼叫方之间的分离?

更新包含整数范围的列表中的第一个元素

Pandas:根据相邻行之间的差异过滤数据帧