笛卡尔积文本的python处理

一 背景

大致背景是这样的,笔者在做数据处理时,遇到一个棘手的事情,主要遇到如下字符串拼接变动的场景,场景主要为,需要考虑如下两张表的组合:
表1-原始文本样式

序号文本样式
1A变量B
2A变量C
3A变量CD
4E变量CF
5C变量CE
6B变量CD

其中文本里的变量有一个取值范围,这个范围只有用户提供的时刻才知道有多少范围,大致的变量是这样
表2-变量取值范围

序号变量
1a
2b
3c
4d
5e
6f

如果做上述的变量组合,文本存在的组合场景有很多,简单举例A变量B的组合文本就有6种组合,组合参考如下:

序号组合文本
1AaB
2AbB
3AcB
4AdB
5AeB
6AfB

二 数据处理

数据处理的思路可以参考如下几种:
第一种,手工复制粘贴
一开始我想在Excel做简单的复制粘贴草草了事,但是实际的数据量要比例子里的还要多很多倍,而且很可能手工处理粘贴处理错误,所以考虑下还是做特殊的自动化处理比较妥当。
第二种,使用powerBI
微软Excel工具,它的PowerBI功能可以组合出上述场景,但是由于笔者的电脑现在不是Windows,此方法暂时没有使用,如果有Windows电脑类似诉求的可以使用之前记录的powerBI文档:笛卡尔积在Excel中的连接使用
第三种,训练chatGPT
我尝试使用chatGPT来自动给我生成文本,但是尝试多次的数据沟通和训练,结果并不理想,还浪费了我很多检查和优化的对话时间。

第四种,使用代码辅助
最后我借用python代码做了如下的简单处理,主要处理步骤如下:
1.使用代码生成组合场景
2.导出数据到Excel
3.进行简单excel函数处理,做文本拼接
步骤1:python脚本参考样例


import itertools
import numpy as np
import pandas as pd# 定义两个数据集
raw_path = "./test_date/"
A = [1,2,3,4,5,6]
B = [ 'a','b','d']# 使用itertools库的product函数计算笛卡尔积
cartesian_product = list(itertools.product(A, B))
getform = pd.DataFrame(cartesian_product)
getform.to_csv('mytest.csv',index=False)# 打印结果
for item in cartesian_product:print(item)

步骤2 导出Excel
导出Excel的数据截图长这个样子,考虑怎么简单怎么来,标黄的部分为表头,没有定义标题,默认为0和1
导出的数据
步骤3 简单Excel处理
主要使用的函数:
VLOOKUP函数:查询当前可能存在的原始文本模式
SUBSTITUTE函数:将当前的可替换变量,替换成要组合的实际字符
参考数据截图如下:
C2单元格的处理函数:VLOOKUP(A2,J:K,2,0)
D2单元格的处理函数:SUBSTITUTE(C2,“变量”,B2)
数据处理过程
当然如果数据量比较大,也可以考虑将步骤3的函数做代码处理,一步生成对应的Excel报表,由于数据量还算适中,因此没有做这么复杂

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

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

相关文章

ant.design 组件库中的 Tree 组件实现可搜索的树: React+and+ts

ant.design 组件库中的 Tree 组件实现可搜索的树,在这里我会详细介绍每个方法,以及容易踩坑的点。 效果图: 首先是要导入的文件 // React 自带的属性 import React, { useMemo, useState } from react; // antd 组件库中的,输入…

如何使用 reqwest 包

GET 请求 向连接发起一个 GET 请求:https://hacker-news.firebaseio.com/v0/topstories.json,并解析返回的内容。 尝试发起请求 因为是 GET 请求,可以先在浏览器中进行查看,浏览器可以正常显示一个 id 列表,如下所示…

《Linux从练气到飞升》No.08 Linux的版本管理工具 git

🕺作者: 主页 我的专栏C语言从0到1探秘C数据结构从0到1探秘Linux菜鸟刷题集 😘欢迎关注:👍点赞🙌收藏✍️留言 🏇码字不易,你的👍点赞🙌收藏❤️关注对我真的…

复现沙箱逃逸漏洞

什么是沙箱(sandbox) 在计算机安全性方面,沙箱(沙盒、sanbox)是分离运行程序的安全机制,提供一个隔离环境以运行程序。通常情况下,在沙箱环境下运行的程序访问计算机资源会受到限制或者禁止,资源包括内存、…

Visual ChatGPT:Microsoft ChatGPT 和 VFM 相结合

推荐:使用 NSDT场景编辑器助你快速搭建可二次编辑的3D应用场景 什么是Visual ChatGPT? Visual ChatGPT 是一个包含 Visual Foundation 模型 (VFM) 的系统,可帮助 ChatGPT 更好地理解、生成和编辑视觉信息。VFM 能够指…

C++ 派生类成员的标识与访问——作用域分辨符

在派生类中,成员可以按访问属性分为以下四种: (1)不可访问成员。这是从基类私有成员继承下来的,派生类或是建立派生类对象的模块都无法访问到它们,如果从派生类继续派生新类,也是无法访问的。 &…

Python魔法解析:探索变量类型的丰富多彩世界!

在Python这个魔法般的编程语言中,变量是连接你与计算机世界的神奇桥梁。然而,这些变量并不是单一的,它们有着丰富多彩的类型。无论你是刚刚踏入编程的大门,还是想要深入了解Python的高级特性,本篇博客将带你探索变量的…

pycharm打开terminal报错

Pycharm打开终端报错如何解决?估计是终端启动conda不顺利,需要重新设置路径。参考以下文章的做法即可。 Windows下Pycharm中Terminal无法进入conda环境和Python Console 不能使用 给pycharm中Terminal 添加新的shell,才可以使用conda环境 W…

黑马大数据学习笔记4-Hive部署和基本操作

目录 思考规划安装MySQL数据库修改root用户密码配置Hadoop下载解压Hive提供MySQL Driver包配置Hive初始化元数据库启动Hive(使用Hadoop用户)Hive体验HiveServer2HiveServer2服务启动 Beeline p48、51、52 https://www.bilibili.com/video/BV1WY4y197g7/?…

Uni-Dock:GPU 分子对接使用教程

github文件下载: git clone https://github.com/dptech-corp/Uni-Dock.git cd Uni-Dock/example/screening_test wget https://github.com/dptech-corp/Uni-Dock/releases/download/1.0.0/unidock 将此文件加入到全局变量中 chmod x unidock sudo mv unidock /…

物联网潜在的巨大价值在于大数据分析

物联网潜在的巨大价值在于大数据分析 从数据里去挖掘市场或者用户的精准需求。 往小的说,后台可以统计用户家里各各插座一年甚至更久的用电情况,这些数据也可以通过app或者小程序展现给用户。 用户可以很直观看到自己一年的用电情况,哪个家…

Blazor前后端框架Known-V1.2.10

V1.2.10 Known是基于C#和Blazor开发的前后端分离快速开发框架,开箱即用,跨平台,一处代码,多处运行。 Gitee: https://gitee.com/known/KnownGithub:https://github.com/known/Known 概述 基于C#和Blazo…

任务15、MidJourney视频(Video)参数动态上线,制作惊艳动画短片

15.1 任务概述 本次任务将帮助你掌握Midjourney中的Video参数,并利用这些参数创作出令人惊艳的绘画作品。通过学习Video参数的基本概念和功能,以及案例的实际应用,你将学会如何正确设置和调整这些参数,从而达到你所期望的绘画效果。最终,你将运用所学知识,生成香奈儿模特…

【C++】C++11 新特性总结 | C++ 常见设计模式总结(秋招篇)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言介绍几种C11新特性介绍一下自动类型推导auto和decltype关键字的用法举例讲一下范围基于的for循环介绍一下列表初始化讲一下右值引用,和左值引用的区…

ubuntu服务器配置ftp服务

需求:配置ftp服务用于在windows电脑上直接浏览、下载、上传ubuntu服务器上的文件,用于文件共享,方便实用 效果:用户打开windows资源管理器后输入ftp://xxx.xxx.xxx.xxx (公网IP地址)后,即可浏览…

map和set的使用总结

目录 一、关联式容器二、键值对三、树形结构的关联式容器3.1 set3.1.1 set介绍3.1.2 set的模板参数列表3.1.3 set的使用实例 3.2 map3.2.1 map的介绍3.2.2 map的参数列表说明3.2.3 map的operator[](very very very好用,map的精华)3.2.4 map的…

如何安全变更亚马逊收款账户?

有太多的卖家想知道如何安全变更亚马逊收款账户,因为更改了第三方收款账户可能会导致二次视频认证或者增强视频。真的是这样吗? 其实不推荐亚马逊店铺正常运营之后去变更信用卡,收款账户等重要资料的,因为玩黑科技的卖家也真的多…

深度学习——划分自定义数据集

深度学习——划分自定义数据集 以人脸表情数据集raf_db为例,初始目录如下: 需要经过处理后返回 train_images, train_label, val_images, val_label 定义 read_split_data(root: str, val_rate: float 0.2) 方法来解决,代码如下&#xff1a…

【Spring】(三)Spring 使用注解存储和读取 Bean对象

文章目录 前言一、使用注解储存 Bean 对象1.1 配置扫描路径1.2 类注解储存 Bean 对象1.2.1 Controller(控制器存储)1.2.2 Service(服务储存)1.2.3 Repository(仓库存储)1.2.4 Component(组件储存…

【MySQL】事务的多版本并发控制(MVCC)

目录 一、数据库并发的三种场景二、MVCC2.1 三个记录隐藏字段2.2 undo log(撤销日志)2.3 模拟MVCC2.3.1 模拟更新(update)2.3.1 模拟删除(delete)2.3.1 模拟插入(insert)2.3.1 模拟查…