如何根据行的“属性”将数据帧行乘以数组?

2024-02-09

我有一个大熊猫数据框 DF,它几乎占用了我所有的 RAM。 它的索引始终是以下之一:“c1”、“c2”、“c3”。

    0   1   2  ...  n
i            
c1  1   8  15
c2  2   9  16
c1  3  10  17
c3  4  11  18
c2  5  12  19
c1  6  13  20
c3  7  14  21
...

我还有一本字典,其中的键与数据帧索引标签“匹配”。这些值是长度为 n 的列表/数组(等于数据帧列数)。

d = {'c1':[10,10,10,...],'c2':[100,100,100,...],'c3':[1000,1000,1000,...]}

len(d[<allkeys>]) == n >>> True

我想做的是基于行的“属性”的简单数据帧乘法——在本例中是它的索引,但它可能是列中的值。 结果如下:

       0      1      2
i                     
c1    10     80    150
c2   200    900   1600
c1    30    100    170
c3  4000  11000  18000
c2   500   1200   1900
c1    60    130    200
c3  7000  14000  21000

我不想以 DF*DF2 的方式构建第二个数据帧 DF2,因为我没有足够的 RAM,而且这样的数据帧对我来说似乎毫无意义,这意味着它只是数组的重复/lists(如果我错了,请纠正我)。

我考虑过有第二个这样的数据框:

       0     1     2
c1    10    10    10
c2   100   100   100
c3  1000  1000  1000

但是当我执行 DF * DF2 时,索引会以某种方式进行排序,我不知道如何避免这种情况。 结果:

          0         1         2
c1      100       800      1500
c1      300      1000      1700
c1      600      1300      2000
c2    20000     90000    160000
c2    50000    120000    190000
c3  4000000  11000000  18000000
c3  7000000  14000000  21000000

如果您认为有另一种方法可以解决这个问题(不同的数据结构、库等),我们也将不胜感激。

示例代码:

df = pd.DataFrame({0: [1, 2, 3, 4, 5, 6, 7],1: [8, 9, 10, 11, 12, 13, 14], 2: [15, 16, 17, 18, 19, 20, 21]}, index=pd.Index(['c1', 'c2', 'c1', 'c3', 'c2', 'c1', 'c3'], dtype='object', name='i'))
d = {'c1':[10,10,10],'c2':[100,100,100],'c3':[1000,1000,1000]}
df2 = pd.DataFrame.from_dict(d,orient='index')

想法是通过以下方式删除重复索引DataFrame.set_index http://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.set_index.html, 乘以DataFrame.mul http://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.mul.html按第一级,最后删除第二级DataFrame.reset_index http://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.reset_index.html:

df1 = (df.set_index(np.arange(len(df)), append=True)
         .mul(df2, level=0)
         .reset_index(level=1, drop=True))
print (df1)
       0      1      2
i                     
c1    10     80    150
c2   200    900   1600
c1    30    100    170
c3  4000  11000  18000
c2   500   1200   1900
c1    60    130    200
c3  7000  14000  21000
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何根据行的“属性”将数据帧行乘以数组? 的相关文章

  • NLTK、搭配问题:需要解包的值太多(预期为 2)

    我尝试使用 NLTK 检索搭配 但出现错误 我使用内置的古腾堡语料库 I wrote alice nltk corpus gutenberg fileids 7 al nltk corpus gutenberg words alice al
  • Python 中 genfromtxt() 的可变列数?

    我有一个 txt具有不同长度的行的文件 每一行都是代表一条轨迹的一系列点 由于每条轨迹都有自己的长度 因此各行的长度都不同 也就是说 列数从一行到另一行不同 据我所知 genfromtxt Python 中的模块要求列数相同 gt gt g
  • 使用正则表达式解析 Snort 警报文件

    我正在尝试使用 Python 中的正则表达式从 snort 警报文件中解析出源 目标 IP 和端口 和时间戳 示例如下 03 09 14 10 43 323717 1 2008015 9 ET MALWARE User Agent Win9
  • 在 python-docx 中搜索和替换

    我有一个包含以下字符串的文档 模板 你好 我的名字是鲍勃 鲍勃是一个很好的名字 我想使用 python docx 打开此文档并使用 查找和替换 方法 如果存在 来更改每个字符串 Bob gt Mark 最后 我想生成一个新文档 其中包含字符
  • Python:当前目录是否自动包含在路径中?

    Python 3 4 通过阅读其他一些 SO 问题 似乎如果moduleName py文件位于当前目录之外 如果要导入它 必须将其添加到路径中sys path insert 0 path to application app folder
  • 将 subprocess.Popen 的输出通过管道传输到文件

    我需要启动一些长时间运行的进程subprocess Popen 并希望拥有stdout and stderr从每个自动管道到单独的日志文件 每个进程将同时运行几分钟 我想要两个日志文件 stdout and stderr 每个进程当进程运行
  • 当x轴不连续时如何删除冗余日期时间 pandas DatetimeIndex

    我想绘制一个 pandas 系列 其索引是无数的 DatatimeIndex 我的代码如下 import matplotlib dates as mdates index pd DatetimeIndex 2000 01 01 00 00
  • 唯一的图像哈希值即使 EXIF 信息更新也不会改变

    我正在寻找一种方法来为 python 和 php 中的图像创建唯一的哈希值 我考虑过对原始文件使用 md5 和 因为它们可以快速生成 但是当我更新 EXIF 信息 有时时区关闭 时 它会更改总和 并且哈希也会更改 有没有其他方法可以为这些文
  • R:使用数据框 A 中某个日期之前的值填充数据框 B 中的行

    这可能非常复杂 我怀疑需要先进的知识 我现在有两种不同类型的 data frames 我需要组合 数据 数据框A 按患者 ID 列出所有输血日期 每次输血均由单独的行表示 患者可以进行多次输血 不同的患者可以在同一天进行输血 Patient
  • Python:随时接受用户输入

    我正在创建一个可以做很多事情的单元 其中之一是计算机器的周期 虽然我将把它转移到梯形逻辑 CoDeSys 但我首先将我的想法放入 Python 中 我将进行计数 只需一个简单的操作 counter 1 print counter 跟踪我处于
  • 行为:如何从另一个文件导入步骤?

    我刚刚开始使用behave http pythonhosted org behave 一个Pythonic BDD框架 使用小黄瓜语法 http docs behat org guides 1 gherkin html 行为需要一个特征 例
  • 如何为多组精灵创建随机位置?

    我尝试使用 blit 和 draw 方法进行 for 循环 并为 PlayerSprite 和 Treegroup 使用不同的变量 for PlayerSprite in Treegroup surface blit PlayerSprit
  • Python int 太大,无法放入 SQLite

    我收到错误 OverflowError Python int 太大 无法转换为 SQLite INTEGER 来自以下代码块 该文件约25GB 因此必须分部分读取 length 6128765 Works on partitions of
  • 是否可以写一个负的python类型注释

    这可能听起来不合理 但现在我需要否定类型注释 我的意思是这样的 an int Not Iterable a string Iterable 这是因为我为一个函数编写了一个重载 而 mypy 不理解我 我的功能看起来像这样 overload
  • Plotly:如何避免巨大的 html 文件大小

    我有一个 3D 装箱模型 它使用绘图来绘制输出图 我注意到 绘制了 600 个项目 生成 html 文件需要很长时间 文件大小为 89M 这太疯狂了 我怀疑可能存在一些巨大的重复 或者是由单个项目的 add trace 方法引起的 阴谋 为
  • 是否可以强制浮点数的指数或有效数匹配另一个浮点数(Python)?

    这是我前几天试图解决的一个有趣的问题 是否可以强制一个的有效数或指数float与另一个人一样float在Python中 出现这个问题是因为我试图重新调整一些数据 以便最小值和最大值与另一个数据集匹配 然而 我重新调整后的数据略有偏差 大约小
  • PyQt 中的线程和信号问题

    我在 PyQt 中的线程之间进行通信时遇到一些问题 我使用信号在两个线程 发送者和监听者 之间进行通信 发送者发送消息 期望被监听者接收 但是 没有收到任何消息 谁能建议可能出了什么问题 我确信这一定很简单 但我已经环顾了几个小时但没有发现
  • 具有指定置信区间的 Seaborn 条形图

    我想在 Seaborn 条形图上绘制置信区间 但我已经计算出置信区间 如何让 Seaborn 绘制我的置信区间而不是尝试自行计算它们 例如 假设我有以下 pandas DataFrame x pd DataFrame Group 1 0 5
  • 使用 Keras 和 fit_generator 绘制 TensorBoard 分布和直方图

    我正在使用 Keras 使用 fit generator 函数训练 CNN 这似乎是一个已知问题 https github com fchollet keras issues 3358TensorBoard 在此设置中不显示直方图和分布 有
  • 如何在SqlAlchemy中执行“左外连接”

    我需要执行这个查询 select field11 field12 from Table 1 t1 left outer join Table 2 t2 ON t2 tbl1 id t1 tbl1 id where t2 tbl2 id is

随机推荐

  • Swift UI 被高频 @StateObject 更新淹没了吗?

    Scenario 一个简单的 SwiftUIApp由一个TabView有两个选项卡 这App结构体有一个 StateObject属性 该属性正在重复且非常快速地 每秒 30 次 更新simulateFastStateUpdate 在这个例子
  • WinForms Tab控件问题

    我有一个以两种模式显示的表单 切换模式完全改变了表单的外观 就像您使用选项卡控件并且每个选项卡上的控件布局不同一样 如果我可以隐藏选项卡本身 选项卡控件将是完美的 当然 我可以使用两个面板并以编程方式显示和隐藏适当的面板 我尝试了这个 但我
  • 在 log4j xml 配置中使用系统环境变量

    是否可以在 log4j xml 配置文件中引用系统环境变量 而不是 Java 系统属性 我希望能够做类似的事情
  • Debian sid下RStudio安装失败:libgstreamer依赖问题

    我使用 Debian sid amd64 每周滚动更新一次 我最近从他们的官方网站下载了 RStudio 的桌面版本 0 99 902 并发布 当然 以 root 身份 dpkg i rstudio 0 99 902 amd64 deb 无
  • Web Scraper:限制单个域上每分钟/小时的请求数?

    我正在与一位图书管理员合作 重新构建其组织的数字摄影档案 我用Python构建了一个机器人机械化 http wwwsearch sourceforge net mechanize and 美丽汤 http www crummy com so
  • NSCoder vs NSDictionary,什么时候用什么?

    我想弄清楚如何决定何时使用 NSDictionary 或 NSCoder NSCoding 似乎对于一般属性列表等 NSDictionary 是生成可在应用程序外部轻松编辑的 XML 文件的简单方法 当处理保存数据的自定义类或可能嵌套在其中
  • ServiceId.UniqueId 最大长度和格式

    Every Item http msdn microsoft com en us library microsoft exchange webservices data item 28v exchg 80 29 aspx e g Task
  • 设置内容视图不起作用

    button setOnClickListener new View OnClickListener public void onClick View v setContentView R layout activity chart 您好
  • Android NDK 中的调试与发布构建

    我正在开发一个必须移植到 Android 的大型游戏引擎 所有代码都是 C C 因此我们通过 NDK 进行移植 我已经构建了所有内容 但经过大量搜索后 我仍然不确定构建 so 文件的调试版本与发布版本的最佳方法是什么 每次都用手改变东西已经
  • 如何在张量流中将 2d 张量与 3d 张量相乘?

    In numpy您可以将 2d 数组与 3d 数组相乘 如下例所示 gt gt gt X np random randn 3 5 4 3 5 4 W np random randn 5 5 5 5 out np matmul W X 3 5
  • Objective-C 在 dealloc 中保留计数

    我在这里看到一些相当奇怪的东西 我在不同的地方设置了断点dealloc我的应用程序中的方法 并在检查时 对象的保留计数self从 1 到 0 变化 当dealloc被调用时 对象的保留计数是否已被设置为0 我在用着print int sel
  • 找到control m字符并将其删除

    是否有任何单行命令可以递归地查找所有目录中的 ctl 文件并从中删除 control m 字符 Use find with sed 使用 GNU sed find name ctl type f exec sed i s M 对于 BSD
  • 到达代码,不执行并无错误退出

    到目前为止 我的所有代码都运行良好 using System Diagnostics namespace WebPortalLogging public static class EventLogging public static voi
  • 通过 HttpURLConnection 发送 UTF-8 字符失败

    我已经花了半个星期天的时间来解决这个问题 现在我需要帮助 我想使用 Java HttpURLConnection 将包含特殊字符 UTF 8 编码的字符串发送到服务器 字符的正确编码失败 Example strToSend strUrlEn
  • Laravel 全文搜索

    我正在尝试对数据库实施全文搜索查询 这是我的客户发给我的规范 The free text search limits the result of the data table to records with a matching first
  • C# 中的线程安全属性

    我正在尝试在 C 中创建线程安全属性 并且我想确保我处于正确的路径上 这是我所做的 private readonly object AvgBuyPriceLocker new object private double AvgBuyPric
  • JavaFX 中的动态/即时调整大小

    如何创建一个 立即 动态调整大小的 JavaFX 应用程序 现在 我已经编写了一个简单的应用程序 可以动态调整大小 但布局更改只有在拖动鼠标按钮后才会显示 我希望在此按钮释放之前立即看到结果 布局更改 我假设这是通过将正确的值 控件与反向绑
  • 如何在java中转换为CRTP?

    我有一个非常简单的案例 我做了一些基本的通用分配 final Detail detail field getAnnotation Detail class final String example detail example final
  • OLAP 处理时出错

    我是 OLAP 新手 并且弄清楚了如何制作立方体并处理它 然而 当我玩得太多时 我最终遇到了这个错误 OLAP存储引擎中的错误 找不到属性键 表 dbo v MYEntities 列 uniqueId 值 2548 OLAP 中的错误 存储
  • 如何根据行的“属性”将数据帧行乘以数组?

    我有一个大熊猫数据框 DF 它几乎占用了我所有的 RAM 它的索引始终是以下之一 c1 c2 c3 0 1 2 n i c1 1 8 15 c2 2 9 16 c1 3 10 17 c3 4 11 18 c2 5 12 19 c1 6 13