如何从另一个数据框中获取值的行列名称

2024-01-08

给定一个范围表(start, end):

name     blue         green          yellow        purple              
a        1, 5                        654, 678       11, 15
b                     88761, 88776  
c        1211, 1215                  38, 47    
d        89, 95                                     1567, 1578

和一个数据框df:

Supplier        colour                   
Abi             1                               
John            678          
Smith           120               
Tim             1570 
Don             87560                       

我怎样才能过滤df仅包含其值在colour列是否在表中提供的范围内?

并创建第三列,将列中的值关联起来colour to the row-column范围表中的名称。我想要决赛df看起来像这样:

Supplier        colour    Source                  
Abi             1         a-blue                      
John            678       a-yellow                   
Tim             1570      d-purple

谢谢你!

s = df2.stack()
print(s)

Gives:

a  1,      name          5
           blue       654,
           green       678
           yellow      11,
           purple       15
b  88761,  name      88776
c  1211,   name       1215
           blue        38,
           green        47
d  89,     name         95
           blue      1567,
           green      1578
dtype: object

And:

s = df2.stack()
s = s.str.split("[, ]+").apply(lambda x: pd.Interval(*map(int, x), closed="both"))
print(s)

Gives:

Traceback (most recent call last):
  File "/Users/PycharmProjects/sup.py", line 12, in <module>
    s = s.str.split("[, ]+").apply(lambda x: pd.Interval(*map(int,x), closed="both"))
  File "/Users/.conda/envs/lib/python3.8/site-packages/pandas/core/series.py", line 4200, in apply
    mapped = lib.map_infer(values, f, convert=convert_dtype)
  File "pandas/_libs/lib.pyx", line 2402, in pandas._libs.lib.map_infer
  File "/Users/PycharmProjects/sup.py", line 12, in <lambda>
    s = s.str.split("[, ]+").apply(lambda x: pd.Interval(*map(int,x), closed="both"))
TypeError: 'float' object is not iterable

一种方法是制作一个series with pd.IntervalIndex :

s = df2.stack()
s = s.str.split("[, ]+").apply(lambda x: pd.Interval(*map(int, x), closed="both"))
s.index = ["-".join(i) for i in s.index]
s = pd.Series(s.index, index=s)

这样你就有了:

[1, 5]              a-blue
[654, 678]        a-yellow
[11, 15]          a-purple
[88761, 88776]     b-green
[1211, 1215]        c-blue
[38, 47]          c-yellow
[89, 95]            d-blue
[1567, 1578]      d-purple
dtype: object

Now you map它到原来的df and dropna:

df["Source"] = df["colour"].map(s)
df.dropna()

Output:

  Supplier  colour    Source
0      Abi       1    a-blue
1     John     678  a-yellow
3      Tim    1570  d-purple
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从另一个数据框中获取值的行列名称 的相关文章

随机推荐

  • 如何在 Visual Studio 2008“Pro”中进行性能分析

    微软将这款软件称为 Visual Studio 2008 Professional 我发现其中似乎没有应用程序性能分析器或类似的东西 这使得它对我来说似乎不那么 专业 如果 Microsoft 不包含分析器 您有哪些第三方选项可以用于 Vi
  • 数据仓库中的时间和日期维度

    I m building a data warehouse Each fact has it s timestamp I need to create reports by day month quarter but by hours to
  • 如何分配线程来处理 Servlet 请求?

    有人可以解释一下什么是每个请求线程和每个连接线程吗 servlet 适用于哪种模型 如何分配线程来处理 HTTP 请求 是线程 请求还是连接 假设我想在我的计算机中执行一项耗时的任务Servlet s doGet 方法异步 我使用 Java
  • 无需预处理器即可扩展 C/C++ 函数宏

    如何在 C C 文件中测试 扩展所有函数宏 而不通过预处理器运行它 例如 是否有一个程序或方法可以改变这一点 include
  • PHP服务器ERR_CONNECTION_REFUSED

    我无法让 php 服务器在我的本地计算机上运行 我尝试使用 wampserver 和 Easy PHP 我检查了我的使用情况port 80 我更改了端口 80 to 8080 我给了 Apache 和 mysql 防火墙设置所需的权限 我做
  • 在 WPF 中将窗口的 DataContext 绑定到窗口本身

    我有一个继承自 Window 的简单对话框窗口 我在 XAML 中设置它的 DataContext 如下所示
  • 从 efi 应用程序发送 TCP 或 UDP 数据包

    我想开发一个在 EFI shell 中从startup nsh 自动执行的应用程序 此应用程序应将原始字节发送到 IP 地址并接收一些返回的字节 我到处寻找在我的代码中实现简单网络协议的解释和示例 但一无所获 有人可以解释并显示使用 gnu
  • C# 构造函数执行顺序

    在 C 中 当你这样做时 Class Type param1 Type param2 base param1 是先执行类的构造函数 然后调用超类构造函数 还是先调用基类构造函数 顺序是 层次结构中所有类的成员变量都初始化为默认值 然后从最派
  • 如何在 Swift 中将 base64String 转换为 String? [复制]

    这个问题在这里已经有答案了 我从 NSData 中的 Web 服务响应接收到一个 base64 字符串 如何在 swift 中将 dat base64 字符串转换为字符串 Code var jsonResult NSJSONSerializ
  • 使用外部数据扩展 Keycloak 中的用户访问令牌

    我们使用 Keycloak 服务作为 SSO 解决方案 并将生成的 JWT 提供给不同的微服务 效果非常好 但现在我们遇到的问题是 当用户尝试登录时 JWT 必须使用来自外部资源的数据进行扩展 更具体地说 一个用户可以通过一个唯一的ID作为
  • 如何使用Wix安装.NET Framework的可再发行包?

    我有一个一般任务 在产品设置过程中安装 NET Framework 3 5 我执行以下操作 我创建了一个自定义操作 X 自定义操作 X 通过 Process Start 启动可执行文件 Y 可执行文件 Y 终止 msiexec 进程并运行
  • LPHANDLE 与 HANDLE

    在浏览一些代码时 我发现了一个调用打开打印机 http msdn microsoft com en us library dd162751 aspx 该代码可以编译并且运行良好 但是 我们正在通过一个HANDLE代替LPHANDLE 如 M
  • 正则表达式匹配 ini 值

    我正在尝试匹配 ini 行值的姓氏 foo bar far boo some value 我可以匹配 boo 但我只需要 boo I do w s 但它匹配等号 但我不希望它匹配 顺便说一句 如果没有像这样的子值 我应该能够得到 foo v
  • 使用子模块创建公共存储库

    我想创建一个包含多个子模块的公共存储库 裸存储库 我希望不同的人克隆这个裸存储库 在任何子模块中进行更改 更新公共存储库 然而 我意识到这是相当痛苦的 我希望我的存储库如下所示 我有四个独立的存储库 a kernel b rootfs c
  • 无法在 XML 文件上 insertBefore

    我正在尝试编写一个脚本来更新 RSS XML 文件 我希望它获取现有文件并将新项目添加到项目列表的顶部 我之前已经将其添加到文件末尾 但现在它根本没有添加新项目 我已经在网上检查过 但仍然无法使其工作 这是我到目前为止所拥有的 rssDoc
  • python 模块存储在哪里?

    我最近开始学习Python 有两个与模块相关的问题 有没有办法获取机器上可用 即安装 的Python模块列表 我使用 Ubuntu Karmic 和 Synaptic 进行包管理 我刚刚安装了一个 python 模块 模块代码实际存储在我的
  • 能让代码分析理解代码契约吗?

    当组合使用代码分析和代码契约时 我收到很多警告 例如 CA1062 http msdn microsoft com en us library ms182182 aspx Microsoft Design 在外部可见的方法 Foo Bar
  • ggmap,使用 coord_cartesian 将所有点推向北方

    正如标题所说 当我添加时coord cartesian到我的 ggmap 它将我所有的点都向上移动 这是一些数据 pricedata lt structure list nodename c CIN WABRIVR 2 CIN WHEATC
  • Julia v0.6 函数内部宏

    有人可以解决我遇到的这个宏错误吗 它只在版本 0 6 中开始发生 mutable struct Foo x Int end macro test myfoo quoteblock quote myfoo x 1 end return quo
  • 如何从另一个数据框中获取值的行列名称

    给定一个范围表 start end name blue green yellow purple a 1 5 654 678 11 15 b 88761 88776 c 1211 1215 38 47 d 89 95 1567 1578 和一