使用多处理时合并 Pandas DataFrame

2024-03-19

我正在使用多重处理,并为每个进程生成一个 pandas DataFrame。我想将它们合并在一起并输出数据。以下策略似乎几乎有效,但是当尝试使用以下命令读取数据时df.read_csv()它只使用第一个name作为列标题。

from multiprocessing import Process, Lock

def foo(name, lock):
    d = {f'{name}': [1, 2]}
    df = pd.DataFrame(data=d)

    lock.acquire()
    try:
        df.to_csv('output.txt', mode='a')
    finally:
        lock.release()

if __name__ == '__main__':
    lock = Lock()

    for name in ['bob','steve']
        p = Process(target=foo, args=(name, lock))
        p.start()
    p.join()

您可以使用multiprocessing.Pool:

import multiprocessing
import pandas as pd

def foo(name):
    d = {f'{name}': [1, 2]}
    df = pd.DataFrame(data=d)
    return df

if __name__ == '__main__':
    data = ['bob', 'steve']
    with multiprocessing.Pool(2) as pool:
        data = pool.map(foo, data)
    pd.concat(data, axis=1).to_csv('output.csv')

Output:

>>> pd.concat(data, axis=1)
   bob  steve
0    1      1
1    2      2
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用多处理时合并 Pandas DataFrame 的相关文章

随机推荐

  • [:space:] 和 [:blank:] 有什么区别?

    来自正则表达式简介 http tldp org LDP abs html x17046 html blank 匹配空格或制表符 space 匹配空白字符 空格和水平制表符 对我来说 这两个定义是相同的 我想知道它们是否真的重复 如果不同 有
  • 嵌套文档上的 Azure DocumentDB ARRAY_CONTAINS

    似乎是ARRAY CONTAINS嵌套文档上的函数永远不会匹配任何文档 例如 尝试使用 Azure DocumentDB 进行以下简单查询查询游乐场 https www documentdb com sql demo Sandbox SEL
  • 为什么必须同时使用编译器标志和运行时标志才能在 Haskell 中获得多核支持?

    Haskell wiki 显示您需要同时设置编译标志和运行时标志才能获得多核支持 为什么使用该库不足以在编译时获得正确的行为 为什么运行时可执行文件无法检测到它是使用 threaded 编译的并使用系统上的所有内核 除非另有指定 我认为默认
  • 在 Unix 上正确处理 PID 文件的参考

    我在哪里可以找到备受推崇的参考详细介绍了 Unix 上 PID 文件的正确处理 在 Unix 操作系统上 通常的做法是使用特殊的锁定文件 PID 文件来 锁定 程序 通常是守护程序 这是一个位于可预测位置的文件 通常是 var run fo
  • 如何在 Windows 上使用 subprocess.run 运行 bash 命令 [重复]

    这个问题在这里已经有答案了 我想使用运行 shell 脚本和 git bash 命令subprocess run 在 python 3 7 4 中 当我在上面运行这个简单的例子时子流程文档页面 https docs python org 3
  • 错误 TS2300:node_modules/@types/core-js/index.d.ts 中重复标识符“PropertyKey”

    我在 Visual Studio Code IDE 的 node modules types core js index d ts 中遇到以下错误 当我跑步时npm start为了服务该应用程序 我得到 node modules types
  • iPhone客户端证书

    我想验证我正在编写的应用程序是否正在 iPhone 上运行 会是什么 完美之处在于 Apple 将 SSL 客户端证书嵌入到每台 iPhone 中 该证书可以由接收服务器进行身份验证 我是这种情况吗 我还没有开始研究这个 我会更新我发现的任
  • 计算没有两个相邻字符相同的所有排列

    给定一个仅包含不同数量的数字 1 2 3 和 4 的序列 例如 13244 4442 等 我想计算其所有排列 以便没有两个相邻的数字是相同的 我相信它是 O N N 并且想知道是否有更好的 有人有主意吗 class Ideone stati
  • Python:删除子类中的类属性

    我有一个子类 我想要它not包括基类上存在的类属性 我尝试了这个 但它不起作用 gt gt gt class A object x 5 gt gt gt class B A del x Traceback most recent call
  • javascript 从http响应保存文件(Web Api HttpResponseMessage)

    所以当我尝试从服务器响应保存文件时遇到问题 当我尝试从浏览器中的 url 下载文件时 一切正常 但当我尝试从 clint 端发送请求时 文件已保存 但文件中存在 Object object 如果是 PDF 文件 则无法打开 请求必须包含一个
  • 如何使用 LLVM IRBuilder 从外部 DLL 调用函数?

    如何从 LLVM 调用外部 DLL 的函数 如何从 LLVM 代码调用 DLL 文件中定义的函数 由于您的问题缺少重要信息 我猜您想实现以下目标 我猜你会使用 c c 接口并且该函数有一个签名void fun void 我还猜测您将使用 L
  • 如何在离子中滚动到页面顶部

    目前我正在 javascript 和 angular js 上的 ionic 框架中工作 我只是放置搜索框并呈现客户列表 但假设在第一次尝试中我可以使用 a 进行搜索 它会显示具有 alpha a 的所有项目 但问题是当我向下滚动查看搜索结
  • 如何定义状态?

    有谁有一个好的定义state在网络应用程序的上下文中 更具体地说 什么是state在 React 的上下文中意味着 这与第一个定义有什么不同吗 我看到 状态 这个术语在 React 开发中被大量使用 但我一直无法找到一个可靠 简洁的定义 两
  • 我可以在 SQL Server Management Studio 中拥有多行选项卡吗

    我想知道是否可以将 SQL Server 设置为具有多行文件 查询选项卡 我有很多查询想要在它们之间切换 并且可以将它们移动到不同的水平组 但我认为两行比左侧下拉打开查询的大列表的引脚更容易导航 如果您固定足够的代码窗口来填满顶部栏 则 V
  • 使用自定义主干集合构建 Fuelux Datagrid 数据源

    我正在尝试构建启用排序 搜索和分页的数据网格 因此 我使用fuelux datagrid 我的主干视图如下所示 var app app function use strict The Players view app PlayersView
  • Linux / Bash 中随机打乱行

    我在linux下有一些文件 例如2 我需要将文件混入一个文件中 例如 cat file1 line 1 line 2 line 3 line 4 line 5 line 6 line 7 line 8 and cat file2 linea
  • 使用线程循环更新 JFrame

    我对在循环中使用线程进行了一些广泛的搜索 虽然我了解单独线程如何工作的概念 但我似乎仍然无法掌握如何在我的简单应用程序中实现它 我的申请由一个带有文本框的表单组成 每次循环迭代时都需要更新此文本框 它以按下按钮开始 但循环也应以按下停止按钮
  • Javascript:无法获取新创建元素的高度

    使用新元素 例如 body append html 更新 DOM 后 我无法立即获取新更新元素的高度 例如 body height 部分修复是设置时间间隔并获取时间间隔结束时的高度 setTimeout alert body height
  • ncurses 终端大小

    如何找到 ncurses 应用程序的终端宽度和高度 void getmaxyx WINDOW win int y int x http linux die net man 3 getmaxyx我相信 另外 这可能会有所帮助 在C中获取终端宽
  • 使用多处理时合并 Pandas DataFrame

    我正在使用多重处理 并为每个进程生成一个 pandas DataFrame 我想将它们合并在一起并输出数据 以下策略似乎几乎有效 但是当尝试使用以下命令读取数据时df read csv 它只使用第一个name作为列标题 from multi