用条件列绘制 pandas DataFrame

2023-11-26

我有这种 pandas.DataFrame。 “a”、“b”是获取“x”和“y”时的条件。

df = pd.DataFrame([[10,20,0,.1], [10,20,1,.5], [100,200,0,.33], [100,200,1,.11]], columns=["a", "b", "x", "y"])
df

enter image description here

我需要根据相同的条件绘制 (x,y) 列的折线图。预期结果图是:

enter image description here enter image description here

当然,这个图像是通过以下代码手动给出的:

pd.DataFrame([[0,.1],[1,.5]]).plot(kind="line", x=0, y=1, style="-", legend=None, title="a: 10, b: 20")
plt.xlabel("x")
plt.ylabel("y")
plt.figure()
pd.DataFrame([[0,.33],[1,.11]]).plot(kind="line", x=0, y=1, style="-", legend=None, title="a: 100, b: 200")
plt.xlabel("x")
plt.ylabel("y")

我的问题是,当获取包含条件列、x 和 y 的数据框时,如何动态制作如上所述的图。

Update

列名称是固定的。然而,条件列的值是动态改变的。所以,我不能使用值 10、20、100、200。

Update2

如果我有以下“filter_with_a_and_b”方法,我认为问题已解决:

def filter_with_a_and_b(df, a_b):
    # how to implement?

a_b_list = df.drop_duplicates(["a","b"])
new_df_list = filter_with_a_and_b(df, a_b)
for idx, df in enumerate(new_df_list):
    df.plot(title=a_b_list[idx])

那是你要的吗?

df.loc[(df.a == 10) & (df.b == 20), ['x','y']].plot(title='a: 10, b: 20')

现在让我们做得更聪明一点:

cond = {'a': 100, 'b': 200}
df.loc[(df.a == cond['a']) & (df.b == cond['b']), ['x','y']].plot(title='a: {a}, b: {b}'.format(**cond))

或使用query():

q = 'a == 100 and b == 200'
df.query(q)[['x','y']].plot(title=q)

UPDATE:

a_b_list = df[['a','b']].drop_duplicates()

[df.loc[(df.a == tup[0]) & (df.b == tup[1]), ['x','y']] \
   .plot(x='x', y='y', kind='line', style='-',title='a: {0[0]}, b: {0[1]}'.format(tup)) \
   .set_ylabel('y')
 for tup in a_b_list.itertuples(index=False)]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用条件列绘制 pandas DataFrame 的相关文章

  • 如何为 Intellij/PyCharm 设置 PYTHONSTARTUP 脚本

    我尝试添加PYTHONSTARTUP环境变量 我还尝试了自定义启动脚本 但更令人惊讶的是 这also没有工作 npa别名无法识别 出于一点绝望 我什至尝试添加到interpreter options 那什么也没做 实际上是什么Interpr
  • Python grpc protobuf 存根生成问题:--grpc_out: protoc-gen-grpc: 插件失败,状态代码 1

    正如问题所说 我从源代码编译了 grpc 并且也做了sudo pip install grpcio 但是 那which grpc python plugin不返回任何内容 这是一个问题 因为route guide的grpc python示例
  • 我应该为 MySQL 使用什么 python 3 库? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 据我所知 MySQLdb 仍然没有移植到 Python 3 pypy 上似乎有另一个名为 PyMySQL
  • 在 Python 中绘制分类数据的三个维度

    我的数据包含三个我试图可视化的分类变量 城市 五个之一 职业 四种之一 血型 四种之一 到目前为止 我已经成功地以一种我认为易于使用的方式对数据进行了分组 import numpy as np pandas as pd Make data
  • Windows Defender 检测 Python EXE 为木马

    我制作了一个 Python 脚本 将 Windows 目录以 zip 形式邮寄给我 我使用 sched 模块添加了一个调度程序 每小时重复一次 我试图制作一个简单的同步应用程序供个人使用 在 Windows 启动时启动 我使用将其转换为 e
  • OpenCV - 我需要将彩色图像插入黑白图像并且

    我用以下代码将黑白图像插入彩色图像 没问题 face grey cv cvtColor face cv COLOR RGB2GRAY for row in range 0 face grey shape 0 for column in ra
  • 在 vim 折叠线中语法高亮 Python

    我发现代码折叠 http en wikipedia org wiki Code folding帮助我更好地组织我的文件 因此 在我的底部 vimrc 我启用vim代码折叠 http vimdoc sourceforge net htmldo
  • 类型错误:需要 Future 或协程

    我尝试在 asyncssh 上自动重新连接 ssh 客户端 SshConnectManager 必须留在后台并在需要时进行 ssh 会话 class SshConnectManager object def init self host u
  • 如何使用 xlrd 将新列和行添加到 .xls 文件

    如何向 xlrd 中的工作表添加新列和 或行 我有一个使用 open workbook 读取的 xls 文件 我需要在第一张表中添加一个新列 bouncebacks 然后在该表中添加新行 但我在 xlrd 文档中找不到任何显示如何添加新行和
  • Matlab中带误差条的直方图

    我想将误差条放在条形图中 每个条形上方 我试过 bincentres 85 10 85 nelements 1 4 14 24 46 57 63 63 174 147 69 49 22 9 4 2 1 0 err sqrt nelement
  • pandas to_sql sqlalchemy 与 secure_transport 的连接

    我正在尝试将数据发送到具有 require secure transport ON 的服务器上的 mysql 数据库 当我尝试使用以下代码连接到它时 import pandas as pd import pymysql from sqlal
  • Python,多线程,获取网页,下载网页

    我想在一个站点批量下载网页 我的 urls txt 文件中有 5000000 个 url 链接 大约有300M 如何让多线程链接这些网址并下载这些网页 或者如何批量下载这些网页 我的想法 with open urls txt r as f
  • 使 np.loadtxt 使用多个可能的分隔符

    我有一个程序可以读取数据文件 用户可以选择他们想要使用的列 我希望它对于输入文件更加通用 有时 列可能如下所示 10 34 24 58 8 284 6 121 有时它们可 能看起来像这样 10 34 24 58 8 284 6 121 我希
  • PyCharm - 如何挂起所有线程

    我们使用 PyCharm 5 0 1 进行多线程调试 当它在断点处停止时 只有特定线程停止 而所有其他线程继续 这使得 冻结时刻 和检查参数值以及其他线程的当前状态变得困难 当其中一个线程在断点处停止时 是否可以挂起所有线程 这在最新的 P
  • 使用 Python 脚本打开特定文件类型?

    如何使 Python 脚本成为特定文件类型 例如 foo 的默认应用程序 例如 当我双击 Finder Explorer 中的文件时 我希望该文件在 Python 脚本中打开 这可以在 Win 和 或 OS X 中实现吗 如果重要的话 该应
  • 如何测试列表中多个值的成员资格

    我想测试两个或多个值是否在列表中具有成员资格 但我得到了意外的结果 gt gt gt a b in b a foo bar a True 那么 Python 可以同时测试列表中多个值的成员资格吗 这个结果意味着什么 See also How
  • Celery:每个工作人员的 task_acks_late 的不同设置/向 celery 添加自定义选项

    这个问题是后续问题django celery 禁用一个工作者的预取 有错误吗 https stackoverflow com questions 58290045 django celery disable prefetch for one
  • Python 中的十进制到二进制半精度 IEEE 754

    我只能使用以下命令将十进制转换为二进制单精度 IEEE754struct pack模块 或者使用相反的方法 float16 或 float32 numpy frombuffer 是否可以使用 Numpy 将十进制转换为二进制半精度浮点数 我
  • 如何配置 Eclipse 在使用 Pydev 插件选择“运行”或“调试”时启动浏览器

    我正在使用 Eclipse Pydev 插件学习 Python 和 Django 当我按 运行 或 调试 时 我希望内部或外部浏览器使用 URL http 127 0 0 1 启动或刷新 我见过用 PHP 插件完成的 但没有用 Pydev
  • django admin 中内联模型的分页器

    我有这个简单的 django 模型 由一个传感器和特定传感器的值组成 每个日射强度计的值数量很多 gt 30k 是否可以以某种方式分页PyranometerValues在特定日期或一般情况下将分页器应用于管理内联视图 class Pyran

随机推荐

  • 为什么 Dictionary 不支持 null key? [复制]

    这个问题在这里已经有答案了 首先 why不Dictionary
  • 优雅地退出应用程序?

    我有一个具有明确定义的 Try Catch Finally 链的应用程序 该应用程序在正常情况下退出并执行finally 块 但是当有人过早地点击 GUI 中的红色 X 时 该程序完全存在 代码 0 并且主线程的finally 块未被调用
  • pandas 将一列的一部分替换为另一列

    我有一个 pandas 数据框 我们称之为data data有两列 列a和列b 像这样 a b 0 aaa tts 1 abb tst 2 aba tss 我想更换每个 a 在列中a带柱b 像这样 a b 0 ttsttstts tts 1
  • 如何在bash中分割由/分隔的字符串

    我必须在 bash 脚本中用 分割字符串 但我尝试过 for i in echo www tr 但它不起作用 有什么建议吗 多谢 IFS read a foo lt lt lt abc def ghi jkl echo foo 0 foo
  • 错误[E0463]:在为 wasm32-unknown-unknown 构建 Rust 项目时找不到“core”的包

    我收到以下错误消息 error E0463 can t find crate for core note the wasm32 unknown unknown target may not be installed error aborti
  • 计算对象中非空字段的数量

    我有一个UserProfile包含用户数据的类 如下所示 class UserProfile private String userId private String displayName private String loginId p
  • 带有容器和默认分配器的模板模板参数:我可以使我的声明更紧凑吗?

    我正在看这个有趣的话题 https stackoverflow com a 16596463 2436175 我的具体案例涉及使用 opencv 中的 cv Point 和 cv Rect 的 std 容器声明模板化函数 我想要针对以下模板
  • spoj ARRAYSUB:O(n) 复杂度方法

    我试图在 spoj 上解决这个问题http spoj pl problems ARRAYSUB 我用两种方法解决了这个问题 首先使用优化的蛮力 其次在 k 2k 3k 等处进行枢轴并找到最大值 尽管这两种解决方案在最坏情况下都被接受 但复杂
  • 订阅 Meteor.Users 集合

    in server js Meteor publish directory function return Meteor users find fields emails 1 profile 1 in client js Meteor su
  • 强制对象评估为 false

    我猜这可能是特定于应用程序的 但我使用的是node js 只要它在v8引擎中工作 我不介意 我正在尝试创建一个Object评估结果为 false 例如 var Foo function return this var bar new Foo
  • java file.renameTo() 确实重命名文件但返回 false。为什么?

    问题是我需要在其余逻辑工作之前移动文件 因此当该方法返回 false 时我停止执行 但是 当我在 Windows 资源管理器中检查该文件时 它有一个新名称并且已移动 只是好奇为什么会发生这种情况 这是我刚刚尝试重现问题的一些示例代码 这几乎
  • iOS 10 中收不到推送通知

    我的应用程序在 Appstore 中 推送通知在 iOS 9 中工作正常 但在 iOS 10 中不起作用 我没有收到任何 iOS 10 设备的推送通知 我已检查服务器中的设备令牌和证书 全部正确 我还检查了设置应用程序中的通知属性 一切都很
  • 释放鼠标捕获并让鼠标点击通过

    我有一个类似于弹出窗口或菜单的控件 我想显示它 当用户单击框的边界之外时 让它隐藏自己 我使用了 Mouse Capture this CaptureMode SubTree 并以与 OnLostMouseCapture 中的 Menu P
  • google.colab 模块中是否有一个函数可以关闭运行时

    有时 当我在 google colab 中运行时 当运行完成时 我无法留在计算机前手动断开与服务器的连接 即使我的运行已完成 无缘无故占用节点 连接仍保持打开状态 google colab 中是否有一个函数 可以让我插入该函数以在一些纪元后
  • Tensorflow如何恢复具有不同名称但相同形状的权重?

    我在 Tensorflow 中有多种架构 其中一些共享某些部件的设计 我想训练其中一个网络 并在另一个网络中使用相似层的训练权重 此时 我可以保存所需的权重 并将它们重新加载到具有完全相同的变量命名约定的架构中 然而 当两个网络中的权重名称
  • Swing Worker:函数 get()

    我的问题是我不明白如何swingworker有效 因为我想做的是fa worker get 因为我有一个很长的方法 可以计算在后台运行的很多点 因为我不想冻结我的界面 并且我想得到她的结果来绘制组件图像 但我不明白当我这样做时它会去哪里fa
  • 如何检测 html 元素是否可以追加子节点?

    我在我的应用程序中创建了一个名为 loading 的自定义 jquery 事件 当触发此事件时 我想附加一个带有微调器的屏蔽元素 我可以毫无问题地弄清楚那部分 但是 某些元素 图像 表单输入等 无法附加子元素 我需要能够检测此事件的目标是否
  • Android 片段 - findViewById 返回 null [重复]

    这个问题在这里已经有答案了 我有一个在互联网上似乎很常见的问题 我创建了一个仅包含片段的活动 这是生成的代码 Override protected void onCreate Bundle savedInstanceState super
  • Pandas 数据框列值不区分大小写替换 where

    pandas DataFrame replace 是否有不区分大小写的版本 https pandas pydata org pandas docs version 0 21 generated pandas DataFrame replac
  • 用条件列绘制 pandas DataFrame

    我有这种 pandas DataFrame a b 是获取 x 和 y 时的条件 df pd DataFrame 10 20 0 1 10 20 1 5 100 200 0 33 100 200 1 11 columns a b x y d