如何转置 dask 数据框(将列转换为行)以实现整洁的数据原则

2023-12-01

TLDR:我从 dask bag 创建了一个 dask 数据框。 dask 数据框将每个观察(事件)视为一列。因此,我没有为每个事件提供几行数据,而是为每个事件提供一列。目标是将列转置为行,就像 pandas 使用 df.T 转置数据帧一样。

Details: 我有从我的时间线中获取样本 Twitter 数据。为了达到我的起点,这里是将 json 从磁盘读取到dask.bag然后将其转换为dask.dataframe

import dask.bag as db
import dask.dataframe as dd
import json


b = db.read_text('./sampleTwitter.json').map(json.loads)
df = b.to_dataframe()
df.head()

问题我所有的个人事件(即推文)都记录为列副行。符合tidy原则上,我希望每个事件都有行。pandas有数据帧的转置方法dask.array 有一个数组的转置方法。我的目标是在 dask 数据帧上执行相同的转置操作。我该怎么做呢?

  1. 将行转换为列

编辑解决方案

此代码解决了原始转置问题,通过定义要保留的列并删除其余列来清理 Twitter json 文件,并通过将函数应用于 Series 来创建新列。然后,我们将一个更小的、干净的文件写入磁盘。

import dask.dataframe as dd
from dask.delayed import delayed
import dask.bag as db
from dask.diagnostics import ProgressBar,Profiler, ResourceProfiler, CacheProfiler
import pandas as pd
import json
import glob

# pull in all files..
filenames = glob.glob('~/sampleTwitter*.json')


# df = ... # do work with dask.dataframe
dfs = [delayed(pd.read_json)(fn, 'records') for fn in filenames]
df = dd.from_delayed(dfs)


# see all the fields of the dataframe 
fields = list(df.columns)

# identify the fields we want to keep
keepers = ['coordinates','id','user','created_at','lang']

# remove the fields i don't want from column list
for f in keepers:
    if f in fields:
        fields.remove(f)

# drop the fields i don't want and only keep whats necessary
df = df.drop(fields,axis=1)

clean = df.coordinates.apply(lambda x: (x['coordinates'][0],x['coordinates'][1]), meta= ('coords',tuple))
df['coords'] = clean

# making new filenames from old filenames to save cleaned files
import re
newfilenames = []
for l in filenames:
    newfilenames.append(re.search('(?<=\/).+?(?=\.)',l).group()+'cleaned.json')
#newfilenames

# custom saver function for dataframes using newfilenames
def saver(frame,filename):
    return frame.to_json('./'+filename)

# converting back to a delayed object
dfs = df.to_delayed()
writes = [(delayed((saver)(df, fn))) for df, fn in zip(dfs, newfilenames)]

# writing the cleaned, MUCH smaller objects back to disk
dd.compute(*writes)

我认为你可以通过完全绕过 bag 来获得你想要的结果,代码如下

import glob

import pandas as pd
import dask.dataframe as dd
from dask.delayed import delayed

filenames = glob.glob('sampleTwitter*.json')
dfs = [delayed(pd.read_json)(fn, 'records') for fn in filenames]
ddf = dd.from_delayed(dfs)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何转置 dask 数据框(将列转换为行)以实现整洁的数据原则 的相关文章

  • Python PAM 模块的安全问题?

    我有兴趣编写一个 PAM 模块 该模块将利用流行的 Unix 登录身份验证机制 我过去的大部分编程经验都是使用 Python 进行的 并且我正在交互的系统已经有一个 Python API 我用谷歌搜索发现pam python http pa
  • 导入错误:没有名为 _ssl 的模块

    带 Python 2 7 的 Ubuntu Maverick 我不知道如何解决以下导入错误 gt gt gt import ssl Traceback most recent call last File
  • 如何打印没有类型的defaultdict变量?

    在下面的代码中 from collections import defaultdict confusion proba dict defaultdict float for i in xrange 10 confusion proba di
  • 如何使用包含代码的“asyncio.sleep()”进行单元测试?

    我在编写 asyncio sleep 包含的单元测试时遇到问题 我要等待实际的睡眠时间吗 I used freezegun到嘲笑时间 当我尝试使用普通可调用对象运行测试时 这个库非常有用 但我找不到运行包含 asyncio sleep 的测
  • R 中的列乘以子字符串

    假设我有一个数据框 其中包含多个组件及其在多个列中列出的属性 并且我想对这些列运行多个函数 我的方法是尝试将其基于每个列标题中的子字符串 但我无法弄清楚如何做到这一点 下面是数据框的示例 Basket F Type 1 F Qty 1 F
  • 如何使用 Scrapy 从网站获取所有纯文本?

    我希望在 HTML 呈现后 可以从网站上看到所有文本 我正在使用 Scrapy 框架使用 Python 工作 和xpath body text 我能够获取它 但是带有 HTML 标签 而且我只想要文本 有什么解决办法吗 最简单的选择是ext
  • 从 scikit-learn 导入 make_blobs [重复]

    这个问题在这里已经有答案了 我收到下一个警告 D Programming Python ML venv lib site packages sklearn utils deprecation py 77 DeprecationWarning
  • IRichBolt 在storm-1.0.0 和 pyleus-0.3.0 上运行拓扑时出错

    我正在运行风暴拓扑 pyleus verbose local xyz topology jar using storm 1 0 0 pyleus 0 3 0 centos 6 6并得到错误 线程 main java lang NoClass
  • 在pyyaml中表示具有相同基类的不同类的实例

    我有一些单元测试集 希望将每个测试运行的结果存储为 YAML 文件以供进一步分析 YAML 格式的转储数据在几个方面满足我的需求 但测试属于不同的套装 结果有不同的父类 这是我所拥有的示例 gt gt gt rz shorthand for
  • Abaqus 将曲面转化为集合

    我一直试图在模型中找到两个表面的中心 参见照片 但未能成功 它们是元素表面 面 查询中没有选项可以查找元素表面的中心 只能查找元素集的中心 找到节点集的中心也很好 但是我的节点集没有出现在工具 gt 查询 gt 质量属性选项中 而且我找不到
  • HTTPS 代理不适用于 Python 的 requests 模块

    我对 Python 还很陌生 我一直在使用他们的 requests 模块作为 PHP 的 cURL 库的替代品 我的代码如下 import requests import json import os import urllib impor
  • 循环中断打破tqdm

    下面的简单代码使用tqdm https github com tqdm tqdm在循环迭代时显示进度条 import tqdm for f in tqdm tqdm range 100000000 if f gt 100000000 4 b
  • 如何改变Python中特定打印字母的颜色?

    我正在尝试做一个简短的测验 并且想将错误答案显示为红色 欢迎来到我的测验 您想开始吗 是的 祝你好运 法国的首都是哪里 法国 随机答案不正确的答案 我正在尝试将其显示为红色 我的代码是 print Welcome to my Quiz be
  • 如何将 PIL 图像转换为 NumPy 数组?

    如何转换 PILImage来回转换为 NumPy 数组 这样我就可以比 PIL 进行更快的像素级转换PixelAccess允许 我可以通过以下方式将其转换为 NumPy 数组 pic Image open foo jpg pix numpy
  • 如何在 Django 中使用并发进程记录到单个文件而不使用独占锁

    给定一个在多个服务器上同时执行的 Django 应用程序 该应用程序如何记录到单个共享日志文件 在网络共享中 而不保持该文件以独占模式永久打开 当您想要利用日志流时 这种情况适用于 Windows Azure 网站上托管的 Django 应
  • 设置 torch.gather(...) 调用的结果

    我有一个形状为 n x m 的 2D pytorch 张量 我想使用索引列表来索引第二个维度 可以使用 torch gather 完成 然后然后还设置新值到索引的结果 Example data torch tensor 0 1 2 3 4
  • glpk.LPX 向后兼容性?

    较新版本的glpk没有LPXapi 旧包需要它 我如何使用旧包 例如COBRA http opencobra sourceforge net openCOBRA Welcome html 与较新版本的glpk 注意COBRA适用于 MATL
  • 用于运行可执行文件的python多线程进程

    我正在尝试将一个在 Windows 上运行可执行文件并管理文本输出文件的 python 脚本升级到使用多线程进程的版本 以便我可以利用多个核心 我有四个独立版本的可执行文件 每个线程都知道要访问它们 这部分工作正常 我遇到问题的地方是当它们
  • 如何使用google colab在jupyter笔记本中显示GIF?

    我正在使用 google colab 想嵌入一个 gif 有谁知道如何做到这一点 我正在使用下面的代码 它并没有在笔记本中为 gif 制作动画 我希望笔记本是交互式的 这样人们就可以看到代码的动画效果 而无需运行它 我发现很多方法在 Goo
  • 使用基于正则表达式的部分匹配来选择 Pandas 数据帧的子数据帧

    我有一个 Pandas 数据框 它有两列 一列 进程参数 列 包含字符串 另一列 值 列 包含相应的浮点值 我需要过滤出部分匹配列 过程参数 中的一组键的子数据帧 并提取与这些键匹配的数据帧的两列 df pd DataFrame Proce

随机推荐

  • 如何在 Rust 1.0 中读取用户输入的整数?

    我找到的现有答案都是基于from str 例如一次有效地从控制台读取用户输入 但显然from str x 已经变成了x parse 在 Rust 1 0 中 作为新手 考虑到这一变化 应如何调整原始解决方案并不明显 从 Rust 1 0 开
  • 意图发送未接收意图

    因此 我试图在选择列表中的项目后启动一项新活动 根据我所读到的内容 这是非常基本的 我还试图在附加内容中发送一个值 因此 我可以选择列表中的项目 然后新活动启动 设置了附加项 但附加项中的值为空 我注意到新活动的意图 ID 与第一个活动的意
  • 是否可以使用批处理文件将文件发送到打印机?

    如何使用批处理文件将文本文件或 doc 或类似文件发送到通过 USB 端口插入计算机的打印机 还要获取打印机名称 wmic printer get name value findstr Name 它将列出所有打印机 例如 Name PDF
  • 为什么innerHTML附加一个逗号

  • 如何更新 asyncio create_task 中的全局变量

    我目前有一个未在应用程序中设置的全局变量 我有两个文件 其中 file2 从 file1 导入 全局在 file1 中初始化 下面是初始化全局变量并随后在 file1 中使用它的代码 import time import asyncio I
  • 在 BlackBerry 上缩放位图并保留 Alpha

    我正在尝试缩小包含透明度的位图 不幸的是 我尝试过的所有三种方法都会导致本应完全透明的白色 我想保持透明度 我正在缩放的 位图始终是方形的 因此我的函数假设 private static Bitmap scale1 int edge fin
  • ASP.net C# Gridview ButtonField onclick 事件

    我为网上商店类型的项目编写了 ASP 代码 有一种方法可以将 ProductID 添加到 cookie 中 并将产品的数量加 1 另一种方法读取 cookie 将 cookie 转换为数据表并将其放入 gridview 中 这个gridvi
  • 如何使用可选搜索参数构建 where 子句

    页面中有四个字段可以说 EMPLOYEE ID DEPT LOCATION UNIT 用户可以输入任何字段值 所有字段值都是可选的 如果他输入EMPLOYEE ID那么查询应该返回与该相关的行EMPLOYEE ID 如果他只进入LOCATI
  • 这是什么错误-“IOError:[Errno 2]没有这样的文件或目录:'audio.flac'”,我正在尝试使用Python的谷歌语音识别API

    基本上我想将语音转换为文本 所以我尝试使用 python 的谷歌语音识别 api 这是我正在尝试运行的代码 from pygsr import Pygsr speech Pygsr speech record 3 duration in s
  • 为什么 Math.Round(2.5) 返回 2 而不是 3?

    在 C 中 结果为Math Round 2 5 is 2 应该是3 不是吗 为什么在 C 中是 2 首先 这无论如何都不会是 C 错误 它会是 NET 错误 C 是语言 它不决定如何Math Round已实施 其次 不 如果你读过the d
  • 使用 pyzbar 读取 python 中的模糊条形码

    我一直在尝试使用 Python 和 pyzbar 从图像中读取一些条形码 不幸的是 这些图像是在几个限制下从几英尺远的地方拍摄的 我无法将相机移动或变焦得更近 使用任何现有的 Python 库是否可以读取如此模糊的条形码 到目前为止 我已经
  • AdMob 未在 ionic/Angular 应用中加载广告

    我在投放广告时遇到一些问题 我无法思考为什么它不起作用 我安装了以下插件 com google playservices 19 0 0 适用于 Android 的 Google Play 服务 com rjfun cordova plugi
  • 使用 exit(1) 时释放内存,C++

    我正在做一项学校作业 我们被告知 每当我们有意见时 错误我们应该打印一条消息并退出程序 显然我使用 exit 1 但是 问题是我在使用这个函数时出现内存泄漏 我不明白为什么 我使用的每个变量都在堆栈上而不是在堆上 我应该做什么来防止这些内存
  • React:如何加载和渲染外部html文件?

    我使用 React 和 Redux 构建了一个小型博客应用程序 博客显示帖子页面 其中包含帖子的标题 作者 标签和描述 当单击标题或 阅读更多 按钮时 我想从本地项目的数据文件夹中加载并呈现一个包含所有帖子的相应帖子的 HTML 文件 Re
  • git checkout [commit-name] 与带点的比较

    有什么区别git checkout commit name and git checkout commit name 我看到第一个命令更改为分离的头状态 您可以从那里提交并继续创建一个新分支 我对第二个命令的作用感到困惑 它保留在主服务器上
  • 如何使用Fast Member将数据批量复制到列名不一致的表中?

    我有一个Person具有以下列名的表 身份证号 姓名 出生日期 我也有一个 poco 作为 public class Person public int Id get set public string Name get set publi
  • 画布宽度值不正确

    所以我认为代码
  • 检测页面上的任何内容是否正在动画化

    我知道关于 animated选择器 但目前正在遇到 可能是少数几个 旧版 IE 的性能问题 见图 我觉得这可能是我正在测试的方式ANY页面动画 目前我正在循环一个间隔 核心测试是 is animated This 这就是我担心的 但由于我不
  • 提交表单数据而不重新加载页面

    我尝试提交表单而不使用 jQuery 重新加载页面本身 但是数据没有显示 并且表单正在重新加载 这是不需要的 jQuery 代码 function submitFormData var firstval first val var seco
  • 如何转置 dask 数据框(将列转换为行)以实现整洁的数据原则

    TLDR 我从 dask bag 创建了一个 dask 数据框 dask 数据框将每个观察 事件 视为一列 因此 我没有为每个事件提供几行数据 而是为每个事件提供一列 目标是将列转置为行 就像 pandas 使用 df T 转置数据帧一样