当前位置: 首页 > article >正文

利用pandas为海量数据添加UUID并实现精准筛选

文章目录

    • 摘要
    • 引言
    • 环境准备
    • 构建示例数据
    • 添加UUID列
    • 精准筛选数据
    • 成果展示

摘要

在数据处理中,为每条数据记录赋予独特身份标识至关重要。本文通过引入UUID 作为全局唯一标识符,结合强大的pandas库,详细介绍了如何为数据表轻松添加UUID,并通过UUID精准筛选出所需数据。文章从环境准备、构建示例数据、添加UUID列,到精准筛选数据等步骤进行了详细阐述,为数据处理人员提供了一种直观且高效的数据交互方式。

引言

在数据处理领域,为海量数据记录赋予独特身份标识是至关重要的。这种标识,类似于每个人的身份证号码,能够帮助我们追踪、分析和识别数据。UUID(Universally Unique Identifier)正是这样一种能够确保全球唯一性的标识符。想象一下,在庞大的数据海洋中,如何快速定位并筛选出我们感兴趣的信息呢?这就像侦探在案件调查中精准搜寻线索一样,需要迅速且准确。今天,我们将借助强大的pandas库,学习如何为数据表轻松添加UUID,并精准筛选出所需数据。

环境准备

首先,请确保您的环境中已安装pandas库。如果尚未安装,请通过以下命令进行安装:

pip install pandas

安装完成后,我们可以开始导入pandas,并准备一些示例数据以供实验。

构建示例数据

为了让学习过程更加有趣且直观,我们将创建一个包含100万条模拟数据的数据集,每条数据包含随机的名字和年龄。

import pandas as pd  
import random  
import string  
import uuid  
  
# 生成随机名字:假设名字都是5个随机字母的组合  
names = [''.join(random.choices(string.ascii_letters, k=5)) for _ in range(int(1e6))]  
  
# 生成随机年龄:假设年龄范围在18到100岁之间  
ages = [random.randint(18, 100) for _ in range(int(1e6))]  
  
# 创建一个DataFrame来存储这些数据  
df = pd.DataFrame({"name": names, "age": ages})

现在,我们已经拥有了一个包含100万条数据的数据集,每条数据都包含随机的名字和年龄。接下来,我们将为每条数据分配一个唯一的UUID。

df.head()
nameage
0uqHNN53
1wFdfi60
2EpYUg32
3duNqw30
4pyuaV75

添加UUID列

在pandas中,为DataFrame添加一列UUID非常简单。我们将为每条数据生成一个UUID,并将其作为新列添加到DataFrame中。

# 为每条数据生成一个UUID  
uuids = [str(uuid.uuid4()) for _ in range(int(1e6))]  
  
# 将UUID作为新列添加到DataFrame中  
df["uuid"] = uuids
df.head()

如下标所示,uuid属性列已完成添加:

nameageuuid
0uqHNN538aeb9ff4-6c62-4da5-81fd-056905c43a23
1wFdfi6066740675-6b7f-42bc-91af-d6618540e88a
2EpYUg3274e24dec-af01-45d4-b7ca-65ad5b274777
3duNqw30d96eaab8-48e8-4458-b6c8-4fc8d277b8fb
4pyuaV75e24f5883-fabf-4410-b949-1a0d6629c168

精准筛选数据

假设我们想要从这100万条数据中快速找出特定的10条数据。有了UUID,这变得轻而易举。我们可以随机选择10个UUID作为搜索目标,并使用isin()函数根据这些UUID筛选出对应的数据行。

# 随机选择10个UUID作为搜索目标  
idxs = random.sample(range(int(1e6)), 10)  
uuid_index = list(df["uuid"][idxs])  
  
# 使用isin()函数根据UUID列表筛选出对应的数据行  
filtered_df = df[df["uuid"].isin(uuid_index)]
idxs
[346213, 547106, 971513, 982517, 289692, 399447, 209555, 417602, 426722, 798174]
uuid_index

随机筛选出的10条数据的uuid如下所示:

['d281e1e6-2cdc-4417-bac4-55c1e2d63487',
 'd2b628df-a030-4ce7-8ed6-3ea632325298',
 'dd81e3dc-56f0-4dc3-ae6d-487fb6e52d73',
 'd02aae73-0a15-47e0-aa46-975331699d88',
 '00e068d4-afbd-4fab-bc2d-cea042dcc886',
 'd2afeca5-6eae-4a7c-94ed-67713687544e',
 'be5547d4-62be-403b-a0ac-b7e9cd3f2623',
 '10871287-d665-4790-a04f-25b2ad6ce931',
 '38cc6b4f-c0a0-489d-a82f-8a7105424c7e',
 'd1cf6d2b-4385-4f05-9961-d476fa7e622d']

最后,让我们打印出这10条数据的信息,以验证筛选结果是否正确。

成果展示

filtered_df
nameageuuid
209555FirEu60be5547d4-62be-403b-a0ac-b7e9cd3f2623
289692jpPof5100e068d4-afbd-4fab-bc2d-cea042dcc886
346213zrzCv79d281e1e6-2cdc-4417-bac4-55c1e2d63487
399447SelbJ77d2afeca5-6eae-4a7c-94ed-67713687544e
417602XJMBy8910871287-d665-4790-a04f-25b2ad6ce931
426722FRDHN9438cc6b4f-c0a0-489d-a82f-8a7105424c7e
547106PMqTZ35d2b628df-a030-4ce7-8ed6-3ea632325298
798174HfOUA92d1cf6d2b-4385-4f05-9961-d476fa7e622d
971513agNRB29dd81e3dc-56f0-4dc3-ae6d-487fb6e52d73
982517ZqtPP45d02aae73-0a15-47e0-aa46-975331699d88

看着屏幕上排列整齐的10行数据,我们可以确认筛选结果准确无误。现在,filtered_df中就包含了我们所选定的那10条数据的所有信息,包括名字、年龄和它们的UUID。这种精准筛选的能力在数据处理和分析中是非常宝贵的。

总结起来,通过简单的几步操作,我们成功地为大型数据集添加了唯一标识符,并根据这些标识符精准筛选出了所需数据。pandas库不仅提供了丰富的数据处理功能,还让我们能够以一种直观且高效的方式与数据进行交互。


http://www.kler.cn/news/311692.html

相关文章:

  • 开放标准如何破解企业数字化与可持续发展的困境:The Open Group引领生态系统架构创新
  • 新电脑工作流搭建记录-前端篇
  • 《ElementUI/Plus 基础知识》el-table + sortablejs 实现 row 拖动改变顺序(Vue2/3适用)
  • C++对C的扩充
  • 二百六十六、Hive——Hive的DWD层数据清洗、清洗记录、数据修复、数据补全
  • ros跨平台订阅和发布消息(ip如何设置)
  • Springboot的三层架构
  • ⭐ Unity + OpenCV 实现实时图像识别与叠加效果
  • HTML基础和常用标签
  • 【C++笔记】八、结构体 [ 3 ]
  • 如何着手创建企业数据目录?(一)数据目录的设定
  • python 实现area under curve曲线下面积算法
  • libserailport交叉编译适配说明
  • 胤娲科技:解锁AI奥秘——产品经理的智能进化之旅
  • 【每天学点AI】一个例子带你了解Python装饰器到底在干嘛!
  • C语言中的一些小知识(二)
  • Android 恢复挑战和解决方案:如何从 Android 设备恢复删除的文件
  • 算法题总结(三)——滑动窗口
  • MySql的基础讲解
  • Fisco Bcos 2.11.0配置console控制台2.10.0及部署调用智能合约
  • SpringAI-基于java大模型的胡言乱语
  • 正则表达式获取某些字段
  • docker快速搭建kafka
  • 【C++ Primer Plus习题】16.9
  • ATGM331C-5T杭州中科微BDS/GNSS全星座定位授时模块应用领域
  • 数据结构---二叉树例题讲解
  • 基于深度学习的手势识别算法(论文复现)
  • Vue使用组件需要加前缀而React使用组件库的区别
  • 单片机毕业设计基于单片机寻迹巡线避障智能小车系统设计
  • .NET 一直跻身 30 大Github最活跃开源项目之列。