笛卡尔积文本的python处理

news2024/11/24 15:28:18

一 背景

大致背景是这样的,笔者在做数据处理时,遇到一个棘手的事情,主要遇到如下字符串拼接变动的场景,场景主要为,需要考虑如下两张表的组合:
表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.coloradmin.cn/o/849984.html

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

相关文章

Promise详细版

promise基础原理到难点分析 常见的Promise的方法解读 扩展async和await深入分析 逐步分析Promise底层逻辑代码 一、Promise基础 1.什么是promise 为了解决回调地狱: //2.设置点击事件btn.onclick function() {//3.创建ajax实例化对象let xhr new XMLHttpRe…

RocketMQ Learning(一)

目录 一、RocketMQ 0、RocketMQ的产品发展 1、RocketMQ安装 1.1、windows下的安装 注意事项 1.2、Linux下的安装 1.3、源码的安装 1.4、控制台 2、消息发送方式 2.1、发送同步消息 2.2、发送异步消息 2.3、单向发送 3、消息消费方式 3.1、负载均衡模式&#xff0…

生活小妙招之UE custom Decal

因为这几年大部分时间都在搞美术,所以博客相关的可能会鸽的比较多,阿巴阿巴 https://twitter.com/Tuatara_Games/status/1674034744084905986 之前正好看到一个贴花相关的小技巧,正好做一个记录,也在这个的基础上做一些小的拓展…

子集——力扣78

文章目录 题目描述法一 迭代法实现子集枚举题目描述 法一 迭代法实现子集枚举 class Solution {public:vector<int> t;vector<vector<

【C++基础】友元总结一些坑

友元类 友元类&#xff08;Friend Class&#xff09;是一种在C中用于实现类之间访问权限的特殊机制。通过友元类&#xff0c;一个类可以允许另一个类访问其私有成员&#xff0c;甚至可以使另一个类成为其友元&#xff0c;使其能够访问所有成员&#xff0c;包括私有成员。这种机…

[HDLBits] Exams/m2014 q4f

Implement the following circuit: module top_module (input in1,input in2,output out);assign out (!in2)&in1; endmodule

gma 2 教程(二)数据操作:5. 多维科学数据

多维科学数据定义 如下图所示&#xff0c;gma将多维栅格定义为N&#xff08;>1&#xff09;个普通栅格数据集&#xff08;DataSet&#xff09;1组&#xff08;记录多维数据信息的&#xff09;元数据组成的多数据集&#xff08;MultiDataSets&#xff09;。   注&#xff1…

Leetcode.2146 价格范围内最高排名的 K 样物品

题目链接 Leetcode.2146 价格范围内最高排名的 K 样物品 rating : 1837 题目描述 给你一个下标从 0 0 0 开始的二维整数数组 g r i d grid grid &#xff0c;它的大小为 m x n &#xff0c;表示一个商店中物品的分布图。数组中的整数含义为&#xff1a; 0 表示无法穿越的一…

伪原创小发猫怎么样【php源码】

大家好&#xff0c;小编为大家解答初学者自学python哪本书好的问题。很多人还不知道自学python需要什么基础&#xff0c;现在让我们一起来看看吧&#xff01; 火车头采集ai伪原创插件截图&#xff1a; 目前python可以说是一门非常火爆的编程语言&#xff0c;应用范围也非常的广…

TCP三次握手、四次握手过程,以及原因分析

TCP的三次握手和四次挥手实质就是TCP通信的连接和断开。 三次握手&#xff1a;为了对每次发送的数据量进行跟踪与协商&#xff0c;确保数据段的发送和接收同步&#xff0c;根据所接收到的数据量而确认数据发送、接收完毕后何时撤消联系&#xff0c;并建立虚连接。 四次挥手&…

vs code remote ssh: Resolver error: Error: Got bad result from install script

今天像往常一样&#xff0c;打开 windows 11&#xff0c;使用 vs code 远程连接服务器 ubuntu 20&#xff0c;但是遇到了一个错误&#xff1a;Resolver error: Error: Got bad result from install script。 ok&#xff01;&#xff01;&#xff01;开始 Bing &#xff01;&…

.Net C# 免费PDF合成软件

最近用到pdf合成&#xff0c;发现各种软件均收费啊&#xff0c;这个技术非常简单&#xff0c;别人写好的库一大把&#xff0c;这里用到了PDFsharp&#xff0c;项目地址Home of PDFsharp and MigraDoc Foundation 软件下载地址 https://download.csdn.net/download/g313105910…

OBD针脚定义参考

OBD定义的一种标准的参考&#xff0c;不同的车场有不同的定义&#xff0c;貌似没有统一。 在某宝上看到的ODB转db9的不同的线序&#xff1a; 1&#xff09;1/2/3/6几个针脚都是一样的&#xff0c;分别上下针脚对应。 2&#xff09;其中一种4/5/7/8也是上下对应的&#xff1b;另…

检验代码生成器完成版

写维护页面重复逻辑写烦了&#xff0c;连页面的增、删、改、查、弹窗等代码都不行手写了&#xff0c;为此做成代码生成器成型版1.0.干到10点。。。 代码&#xff1a; Class Demo.CodeGener Extends %RegisteredObject {/// 生成操作表相关的代码&#xff0c;包括M、C#调用代码…

有效管理IT问题的5个原则

问题管理就是发现未知的、隐藏的问题&#xff0c;这是根本原因&#xff0c; 这是您 IT 帮助台无穷无尽的工单来源。当您实施有效的 问题管理&#xff0c;您的 IT 团队可以超越消防模式&#xff0c;专注于战略 IT 目标。以下是可以帮助您实现一流问题管理的五个原则&#xff1a;…

远程运维大批量IT设备?向日葵批量部署、分组授权与安全功能解析

数字化转型的不断推进&#xff0c;给予了企业全方位的赋能&#xff0c;但任何发展都伴随着成本与代价&#xff0c;比如在数字化转型过程中企业内部办公与外部业务所需的不断增加的IT设备数量&#xff0c;就为日常的运维工作提出了更大的挑战。 针对企业面对海量IT设备时的运维…

多态总结

什么是多态&#xff1f; 所谓多态&#xff0c;就是同一个操作&#xff0c;作用在了不同的对象上&#xff0c;就会有不同的解释&#xff0c;进而产生不同的执行结果。使用时&#xff0c;是采用父类指针指向子类对象的方法。其中&#xff0c;重载和重写是常见的实现多态的手段。…

【MySQL】基础知识(一)

MySQL基础知识&#xff08;一&#xff09; 文章目录 MySQL基础知识&#xff08;一&#xff09;00 MySQL安装01 数据库介绍1.1 什么是数据库1.2数据库分类 02 SQL分类03 数据库操作3.1显示数据库3.2创建数据库3.3选中数据库3.4删除数据库 04 常用数据类型4.1数值类型4.2字符串类…

LeetCode 0024. 两两交换链表中的节点:粗暴易懂的方法(几个临时变量)

【LetMeFly】24.两两交换链表中的节点&#xff1a;粗暴易懂的方法&#xff08;几个临时变量&#xff09; 力扣题目链接&#xff1a;https://leetcode.cn/problems/swap-nodes-in-pairs/ 给你一个链表&#xff0c;两两交换其中相邻的节点&#xff0c;并返回交换后链表的头节点…

安路FPGA的赋值报错——移位处理,加括号

authordaisy.skye的博客_CSDN博客-嵌入式,Qt,Linux领域博主 在使用移位符号用来当作除以号使用时&#xff0c;发现如下问题 其中 cnt_8K 为偶数和奇数时输出的数据不一样 reg [10:0] cnt_8K; reg [10:0] ram1_addra; always(posedge clk_16M) begin if(ram_out_flag )begin if(…