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

题意:将包含 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.xdnf.cn/news/146744.html

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

相关文章

AI入门系列 | 如何优雅地下载最前沿的模型?

​简介 一片白云横谷口,几多归鸟尽迷巢。 小伙伴们好,我是微信公众号《小窗幽记机器学习》的小编:卖铁观音的小男孩。本系列主要基于过往经历,总结当时自身环境中实操经验。倘若能够顺便帮到他人,也是善莫大焉。 本文…

[已更新]2024数学建模研赛华为杯E题详细思路代码成品文章研究生数学建模数模辅导

截止2024.8.21 12点 已更新e全部小问的建模和问题一的代码 ####https://docs.qq.com/doc/DVU9YYUFLWlNOY3pyE题: 问题1:统计四个观测点的交通流参数随时间的变化规律 为了统计交通流参数(如车流密度、流量和速度),首先需要从视…

猫咪检测系统源码分享

猫咪检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Vision …

Easypoi模板导出

Easypoi模板导出 优点 快速导出:使用预定义的Excel模板,可以快速导出数据,特别是在数据量大的情况下。简化代码:通过模板导出,减少了编写大量POI代码的需要,使得代码更简洁易懂。灵活性:模板可…

Camunda如何共享流程定义但不共享流程实例?

文章目录 一、项目场景二、问题描述三、解决方案方案一:官方实例化共享定义的方法1. 部署共享定义2. 在查询中包含共享的定义3. 实例化共享定义 方案二:自定义TenantIdProvider方法,将租户id作为变量添加到启动的实例中1. 采用自定义的Tenant…

PHP API 框架:构建高效API的利器

在当今快速发展的互联网时代,API(应用程序编程接口)已成为连接不同应用程序和服务的关键。PHP,作为一种流行的服务器端脚本语言,提供了多种强大的框架来简化API的开发。本文将介绍PHP API框架的重要性,以及…

Linux笔记---简单指令

1. 使用的环境 博主使用的是华为云服务器xshell终端的方式学习的,因为据说这样的方式比较接近以后的工作环境。 其中云服务器安装的是Ubuntu操作系统(以Linux为内核,适合新手学习Linux的一个版本) 这里的云服务器不一定使用华为的,但是我在…

论文推荐——犹豫直觉模糊偏好关系积性一致性及其在群决策中的应用

犹豫直觉模糊偏好关系积性一致性及其在群决策中的应用 论文全文 论文全文 论文最巧妙的地方就是修正了积性一致性的条件,使得修复方法完全满足互补条件,也算对大佬的工作做了一个很好的修补。

PVE8最新安装使用指南、优化Proxmox VE 8.1

PVE镜像下载 1、在浏览器输入以下网址下载pve的iso安装镜像。 Download Proxmox software, datasheets, agreements 2、制作系统引导盘 这里使用rufus工具将ISO文件刻录进U盘 rufus下载地址:https://wwf.lanzoul.com/i72bm24j105c 密码:5k8t 下载完成后直接双击运行&…

string类(C++)

哈喽各位!,久违了,最近怎么样捏,本次进入C的string类,加油加油呀! 随记:鼓励创新,宽容失败! 1.标准库的string类 1.1string类的了解 string的文献参考链接-->strin…

thinkphp8 从入门到放弃(后面会完善用到哪里写到哪)

thinkphp8 从入门到放弃 引言 thinkphp* 大道至简一、 thinkphp8 安装安装Composerthinkphp 安装命令(tp-项目名称)多应用安装(一个项目不会只有一个应用)安装完文件目录如下本地部署配置伪静态好了项目可以run 二、架构服务(Service&#xf…

DataGrip远程连接Hive

学会用datagrip远程操作hive 连接前提条件: 注意:mysql是否是开启状态 启动hadoop集群 start-all.sh 1、启动hiveserver2服务 nohup hiveserver2 >> /usr/local/soft/hive-3.1.3/hiveserver2.log 2>&1 & 2、beeline连接 beelin…

智能车镜头组入门(六)车模的控制

本文会简单的介绍一些车模控制的方法。前文也说到过,因为我是写摄像头部分的,所以车模的控制部分我只能给大家简单的介绍下。 大家可能有所听说,智能车竞赛又被称为调参竞赛。显然好的参数决定了小车车速的上限。 调参调的是哪呢&#xff1…

【智能大数据分析 | 实验一】MapReduce实验:单词计数

【作者主页】Francek Chen 【专栏介绍】 ⌈ ⌈ ⌈智能大数据分析 ⌋ ⌋ ⌋ 智能大数据分析是指利用先进的技术和算法对大规模数据进行深入分析和挖掘,以提取有价值的信息和洞察。它结合了大数据技术、人工智能(AI)、机器学习(ML&a…

人工智能项目式综合实验教学平台,让教学实训更简单

一、引言 人工智能(AI)的发展推动了职业教育进入一个全新的交叉学科时代,对培养具有跨学科知识和创新能力的高级工程技术人才提出了新的要求。在OBE框架下,目前的实验教学更多地强调在受控环境下验证算法的有效性,而较…

【Linux】Linux进程的概念

一、冯诺依曼体系结构 我们常见的计算机,比如笔记本,我们不常见的计算机,比如服务器,大部分都遵循冯诺依曼体系结构。 截至目前,我们所认识的计算机,都是有一个一个独立的硬件组成: 输入单元&a…

兼容多个AI应用接口,支持用户自定义切换AI接口

项目背景 2023年ChatGPT横空出世,给IT行业造成了巨大的反响。我第一次发现这个ChatGPT有着如此神奇的功能(智能对话,知识问答,代码生成,逻辑推理等),我感到非常吃惊!经过一番学习和…

张养浩,文坛政坛的双重巨匠

张养浩,字希孟,号云庄,又称齐东野人,生于元世祖至元七年(公元1270年),卒于元英宗至治三年(公元1329年),享年59岁。他是中国元代著名的文学家、政治家&#xf…

文章解读与仿真程序复现思路——电网技术EI\CSCD\北大核心《兼顾参与调频辅助服务的工商业储能电站充放电策略》

本专栏栏目提供文章与程序复现思路,具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源…

公私域互通下的新商机探索:链动2+1模式、AI智能名片与S2B2C商城小程序的融合应用

摘要:在数字化时代,公私域流量的有效融合已成为企业获取持续增长动力的关键。本文旨在探讨如何通过链动21模式、AI智能名片以及S2B2C商城小程序源码的综合运用,实现公私域流量的高效互通,进而为门店创造巨大商机。通过分析这些工具…