我有两个数据帧df和df1.我想在df1中的第0行到第5行查找匹配(Df),并且只返回匹配值和范围. 例如,下面

import collections
import numpy as np
import pandas as pd

df = pd.DataFrame([[2],
                [23],
                [14],
                [33],
                [35],
                [26]], 
                columns = ['Col1'])


df1 = pd.DataFrame([[1,2,4,5,6,8,-19],
                [5,6,20,22,23,34,50],
                [8,12,13,34,45,46,23],
                [9,10,14,29,32,33,-10],
                [1,22,13,23,33,35,2],
                [1,6,7,8,9,10,6],
                [0,2,3,5,6,8,23]], 
                columns = ['Num1','Num2','Num3','Num4','Num5','Num6','Range'])

我希望我的结果是这样的.

result = pd.DataFrame([[2,-19],
                [2,23],
                [23,50],
                [23,2],
                [14,-10],
                [33,-10],
                [33,2],
                [35,2]], 
                columns = ['Match','Range'])

推荐答案

代码:

df2 = df1.melt(id_vars='Range', value_vars=['Num1', 'Num2', 'Num3', 'Num4', 'Num5', 'Num6']) #reshape for easy filter
result = df2[df2['value'].isin(df['Col1'])] # rows based filter
result = result.rename(columns={'value': 'Match'})
print(result[['Match', 'Range']])

输出:

    Match  Range
7       2    -19
13      2     23
17     14    -10
25     23      2
29     23     50
32     33      2
38     33    -10
39     35      2

Python相关问答推荐

了解NP的形状.apply_along_axis输出

pPython pandas重复之前值的问题

Python中进程终止后的意外行为

当一个子指标符合条件时 Select 多指标

Python tkinter关闭第一个窗口,同时打开第二个窗口

如何最好地处理严重级联的json

云上Gunicorn的Flask-socketIO无法工作

GEKKO:已知延迟的延迟系统的参数估计

使用matplotlib pcolormesh,如何停止从一行绘制的磁贴连接到上下行?

由于瓶颈,Python代码执行太慢-寻求性能优化

Pandas 在时间序列中设定频率

GL pygame无法让缓冲区与vertextPointer和colorPointer一起可靠地工作

如何在BeautifulSoup中链接Find()方法并处理无?

使用numpy提取数据块

如何使用Python将工作表从一个Excel工作簿复制粘贴到另一个工作簿?

如何从具有不同len的列表字典中创建摘要表?

什么相当于pytorch中的numpy累积ufunc

用合并列替换现有列并重命名

如何更新pandas DataFrame上列标题的de值?

如何使用Numpy. stracards重新编写滚动和?