load jsonl File with OpenAI API request results to pandas data.frame

news2024/11/15 11:19:33

题意:将包含 OpenAI API 请求结果的 jsonl 文件加载到 pandas DataFrame 中

问题背景:

I have a large data set containing around 500k observation. It has a string variable that I want to create an embedding for. I used the OpenAI API to create the embedding and because of the large number of observations I used their script for parallel requests:

我有一个包含大约 50 万条观测数据的大型数据集,其中有一个字符串变量,我想为其创建嵌入。我使用 OpenAI API 来创建嵌入,并且由于观测数量庞大,我使用了他们的脚本来并行请求:

openai-cookbook/examples/api_request_parallel_processor.py at main · openai/openai-cookbook · GitHub

Everything worked fine. But I'm struggling to load the results to a pandas data.frame. The jsonl file with the results has the following structure, each row corresponding to one of the 500k observations:

一切工作正常。但我在将结果加载到 pandas DataFrame 时遇到了困难。包含结果的 jsonl 文件具有以下结构,每一行对应 50 万个观测值中的一个:

[{"model": "text-embedding-ada-002", "input": "INPUT STRING NR 1"}, {"object": "list", "data": [{"object": "embedding", "index": 0, "embedding": [1,2,3,4...,1536]}], "model": "text-embedding-ada-002-v2", "usage": {"prompt_tokens": 2, "total_tokens": 2}}]

[{"model": "text-embedding-ada-002", "input": "INPUT STRING NR 2}, {"object": "list", "data": [{"object": "embedding", "index": 0, "embedding": [1,2,3,4...,1536]}], "model": "text-embedding-ada-002-v2", "usage": {"prompt_tokens": 2, "total_tokens": 2}}]

Now, I want to read these results into a panda data frame with the following structure. It should have a variable that contains the "INPUT STRING" and 1536 additional variables that contain the embedding.

现在,我想将这些结果读取到一个 pandas DataFrame 中,结构如下:它应该有一个包含“INPUT STRING”的变量,以及 1536 个额外的变量来存储嵌入。

I'm new to python and json files. I usually work with csv files and R.

我是 Python 和 JSON 文件的新手,通常使用 CSV 文件和 R。

I tried to use the read_json function from pandas but that did not work

我尝试使用 pandas 的 `read_json` 函数,但没有成功。

import pandas as pd
openai_results = pd.read_json("results.jsonl", lines=True)

But this gives me a a data set with only 2 variables: For example for the first observation, the first variable contains : {"model": "text-embedding-ada-002", "input": "INPUT STRING NR 1"} and the second variable {"object": "list", "data": [{"object": "embedding", "index": 0, "embedding": [1,2,3,4...,1536]}], "model": "text-embedding-ada-002-v2", "usage": {"prompt_tokens": 2, "total_tokens": 2}}

但这给我生成了一个只有 2 个变量的数据集:例如,对于第一个观测,第一个变量包含:`{"model": "text-embedding-ada-002", "input": "INPUT STRING NR 1"}`,而第二个变量包含:`{"object": "list", "data": [{"object": "embedding", "index": 0, "embedding": [1, 2, 3, 4, ..., 1536]}], "model": "text-embedding-ada-002-v2", "usage": {"prompt_tokens": 2, "total_tokens": 2}}`

问题解决:

You can use something like this:

你可以使用如下代码:

df = pd.read_json('your_file.json', lines=True)
df
'''
   0                                                  1
0  {'model': 'text-embedding-ada-002', 'input': '...  {'object': 'list', 'data': [{'object': 'embedd...
1  {'model': 'text-embedding-ada-002', 'input': '...  {'object': 'list', 'data': [{'object': 'embedd...
'''

Access values:   访问值:

df["input"] = df[0].str["input"]
df["embedding"] = df[1].str["data"].str[0].str["embedding"] # or df["embedding"]=df[1].apply(lambda x: x["data"][0]["embedding"])
df = df[["input","embedding"]]

Out:

               input           embedding
0  INPUT STRING NR 1  [1, 2, 3, 4, 1536]
1  INPUT STRING NR 2  [1, 2, 3, 4, 1536]

If you want to explode embedding column then use explode():

如果你想展开嵌入列,可以使用 `explode()`:

df = df.explode("embedding")
df
'''
               input embedding
0  INPUT STRING NR 1         1
0  INPUT STRING NR 1         2
0  INPUT STRING NR 1         3
0  INPUT STRING NR 1         4
0  INPUT STRING NR 1      1536
1  INPUT STRING NR 2         1
1  INPUT STRING NR 2         2
1  INPUT STRING NR 2         3
1  INPUT STRING NR 2         4
1  INPUT STRING NR 2      1536
'''

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2152787.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【练习15】拼三角

链接&#xff1a;A-拼三角_牛客小白月赛32 (nowcoder.com) 分析&#xff1a; 三角形的三个边a、b、c必须满足条件&#xff1a;ab>c,ac>b,bc>a 可以先将输入的六个数按从小到大排序&#xff0c;然后再枚举。 因为已经排好序了&#xff0c;如果第一行ab<c&#xff0c…

LeetCode2414题: 最长的字母序连续子字符串的长度(原创)

【题目描述】 字母序连续字符串 是由字母表中连续字母组成的字符串。换句话说&#xff0c;字符串 "abcdefghijklmnopqrstuvwxyz" 的任意子字符串都是 字母序连续字符串 。 例如&#xff0c;"abc" 是一个字母序连续字符串&#xff0c;而 "acb" 和…

Linux启动流程,0,1,2进程,init进程,idle进程,内核态到用户态的kernel_execve(一)

&#xff1f;是&#xff0c;如果定义了&#xff0c;就按Makefile的&#xff0c;如果如下make编译时&#xff0c;就按如下 linux内核入口 进程0在用户空间看不到&#xff0c;因为他是内核进程 进程2就是守护进程&#xff0c;维护内涵运转的 一生二&#xff0c;二生三&#xff…

【网络安全的神秘世界】攻防环境搭建及漏洞原理学习

&#x1f31d;博客主页&#xff1a;泥菩萨 &#x1f496;专栏&#xff1a;Linux探索之旅 | 网络安全的神秘世界 | 专接本 | 每天学会一个渗透测试工具 Kali安装docker 安装教程 PHP攻防环境搭建 中间件 介于应用系统和系统软件之间的软件。 能为多种应用程序合作互通、资源…

2021的OWASP TOP 10

OWASP&#xff08;开放Web应用安全项目&#xff09;是一个非营利性组织&#xff0c;旨在提高软件安全性。 每四年一个更新&#xff0c;2025年就会再次更新&#xff0c;到时候这篇文章也会实时更新。 我主要从定义&#xff0c;场景&#xff0c;原因&#xff0c;影响&#xff0…

特征工程与交叉验证在机器学习中的应用

数据入口&#xff1a;学生考试表现影响因素数据集 - Heywhale.com 本数据集提供了关于影响学生考试成绩的多种因素的全面概述。数据集包含了有关学习习惯、出勤率、家长参与、资源获取等方面的信息。 数据说明 字段名说明Hours_Studied每周学习的小时数Attendance出勤率&…

【2024研赛】【华为杯E题】2024 年研究生数学建模比赛思路、代码、论文助攻

思路将在名片下群聊分享 高速公路应急车道紧急启用模型 高速公路拥堵现象的原因众多&#xff0c;除了交通事故外&#xff0c;最典型的就是部分路段出现瓶颈现象&#xff0c;主要原因是车辆汇聚&#xff0c;而拥堵后又容易蔓延。高速公路一些特定的路段容易形成堵点&#xff0…

2024年华为杯数学建模研赛(B题) 建模解析| 网络吞吐量 |小鹿学长带队指引全代码文章与思路

我是鹿鹿学长&#xff0c;就读于上海交通大学&#xff0c;截至目前已经帮2000人完成了建模与思路的构建的处理了&#xff5e; 本篇文章是鹿鹿学长经过深度思考&#xff0c;独辟蹊径&#xff0c;实现综合建模。独创复杂系统视角&#xff0c;帮助你解决研赛的难关呀。 完整内容可…

搜索引擎onesearch3实现解释和升级到Elasticsearch v8系列(二)-索引

场景 首先介绍测试的场景&#xff0c;本文schema定义 pdm文档索引&#xff0c;包括nested&#xff0c;扩展字段&#xff0c;文档属性扩展&#xff0c;其中_content字段是组件保留字段&#xff0c;支持文本内容 索引 索引服务索引的操作&#xff0c;包括构建&#xff0c;put …

计算机缺少vcruntime140.dll的解决方法,共有7种简单有效的方法

电脑出现找不到vcruntime140.dll,无法继续执行代码的情况&#xff0c;其实有很多原因。而且解决起来还是比较简单&#xff0c;主要是你要了解这个dll文件&#xff0c;今天小编就来给大家详细的分析一下找不到vcruntime140.dll的多种解决方法。 一、 问题概述 找不到vcruntime…

普元DWS - Linux下安装DWS标准版

1 前言 普元DWS全称是普元数据开发平台。 功能是对不同结构的数据进行转换处理&#xff0c;比如将MySQL的数据转换到达梦数据库中。 本文讲解如何在Linux下安装DWS标准版 2 DWS的版本 普元DWS有两个版本&#xff1a;微服务版和标准版。 微服务版是基于分布式部署的&#x…

linux----进程地址空间

前言 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、空间分布 二、栈和堆的特点 &#xff08;1&#xff09;栈堆相对而生&#xff0c;堆是向上增长的&#xff0c;栈是向下增长的。 验证&#xff1a;堆是向上增长的 这里我们看到申请的堆&#xff…

16_Python的迭代器

在Python中&#xff0c;迭代是一个非常重要的概念。迭代通常指的是按照某种顺序逐个访问容器中的元素的行为。如使用for循环遍历取值的过程。 可迭代对象&#xff08;Iterable&#xff09; 可迭代对象是任何可以返回一个迭代器的对象。简单来说&#xff0c;它是可以逐一返回其…

华为云服务综合实验

一、实验需求 本次实验内容基于华为云平台模拟企业web集群的构建&#xff0c;其中涉及的知识点包括Linux系统知识、nginx服务的安装及配置应用、云数据库 RDS(Relational Database Service,简称RDS)、虚拟私有云vpc、安全组、SFS弹性文件服务器以及负载均衡等。要求学生通过本…

UDS诊断-面试题2

bilibili视频推荐&#xff1a; 车载测试面试题UDS诊断协议&#xff0c;你知道什么是UDS诊断&#xff1f;ECU是什么&#xff1f;刷写ECU_哔哩哔哩_bilibili 总结&#xff1a; 1.汽车诊断UDS含义&#xff1a; 一套统一的诊断服务命令。 2.具体操作流程&#xff1a; 使用电脑…

高通欲收购英特尔:半导体行业的地震?

据《华尔街日报》报道&#xff0c;高通&#xff08;Qualcomm&#xff09;已经与陷入困境的英特尔&#xff08;Intel&#xff09;接洽&#xff0c;讨论潜在的收购事宜。尽管双方已经就此事进行了交流&#xff0c;但交易的成功与否仍存在诸多不确定性&#xff0c;且若真达成协议&…

java -- 枚举和注解

枚举 枚举介绍 &#xff08;1&#xff09;枚举&#xff1a;&#xff08;enumeration&#xff0c;简写 enum&#xff09; &#xff08;2&#xff09;枚举是一组常量的集合 &#xff08;3&#xff09;枚举属于一种特殊的类&#xff0c;里面只包含一组有限的特定的对象 枚举的两…

Nginx静态资源优化、压缩、缓存处理

一、静态资源优化配置语法 Nginx对静态资源如何进行优化配置。这里从三个属性配置进行优化&#xff1a; sendfile on; tcp_nopush on; tcp_nodeplay on; &#xff08;1&#xff09;sendfile&#xff0c;用来开启高效的文件传输模式。 语法sendfile on |off;默认值sendfile …

YOLOv9改进,YOLOv9主干网络替换为RepViT (CVPR 2024,清华提出,独家首发),助力涨点

摘要 轻量级视觉变换器(ViTs)在资源受限的移动设备上表现出优越的性能和较低的延迟,相比之下轻量级卷积神经网络(CNNs)稍显逊色。研究人员发现了许多轻量级 ViTs 和轻量级 CNNs 之间的结构联系。然而,它们在块结构、宏观和微观设计上的显著架构差异尚未得到充分研究。在…

Linux 磁盘清理重新格式化挂载脚本及问题解决

Linux 磁盘清理重新格式化挂载脚本&#xff1a;diskformat.sh #!/bin/bash for i in {1…8} do umount /data0$i done PIDARRAY() for i in a b c d e f g h do parted -s /dev/sd i m k l a b e l g p t p a r t e d − s / d e v / s d i mklabel gpt parted -s /dev/sd im…