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

Dataframe学习笔记:记录一下工作上使用的几种示例

Dataframe学习笔记:记录一下工作上使用的几种示例

  • 0. 引言
  • 1. Dataframe 简介
  • 2. Dataframe 使用场景
  • 3. 创建测试数据
  • 4. 示例学习
  • 5. 总结

0. 引言

最近工作上开发 AI 应用,经常使用到 Dataframe,所以整理和记录一下工作上使用的几种示例。

1. Dataframe 简介

Dataframe是Python库Pandas中一个强大的数据结构,用于存储和分析表格数据。它类似于Excel电子表格,但具有更强大的功能和灵活性。

Dataframe由行和列组成,类似于二维数组。每一列可以包含不同类型的数据,例如数字、字符串、日期等。Dataframe具有许多强大的功能,例如:

  • 数据筛选和排序
  • 数据清洗和转换
  • 数据聚合和统计分析
  • 数据可视化

2. Dataframe 使用场景

Dataframe广泛应用于各种数据分析领域,例如:

  • 金融分析
  • 市场营销
  • 客户关系管理
  • 风险管理
  • 科学研究

3. 创建测试数据

为了更好地学习Dataframe,我们先来生成一套测试数据。假设我们有一份商品数据,包含以下字段:

  • 商品名称
  • 商品价格
  • 商品库存
  • 商品类别

我们可以使用以下代码生成测试数据:

import pandas as pd# 定义列名
column_names = ["商品名称", "商品价格", "商品库存", "商品类别"]# 生成测试数据
data = [["商品1", 100, , "类别1"],["商品2", 200, 20, ""],["商品3", 300, 30, "类别3"],
]# 创建Dataframe
df = pd.DataFrame(data, columns=column_names)# 打印Dataframe
print(df.to_string())

4. 示例学习

下面我们来学习三个示例。

示例1:数据预处理

该示例对数据进行了一些预处理,包括:

  • 将列名转换为大写
  • 将空值替换为0或“N/A”
  • 计算数据数量
# 将列名映射为大写
column_names_map = {"商品名称": "PRODUCT","商品价格": "REVENUE_ESTIMATE_USD","商品库存": "NUM_OF_RESOURCE","商品类别": "CATEGORY",
}# 将指定列的值为空时,将该列变成 0
cols_to_zero = ["NUM_OF_RESOURCE"]
for col in cols_to_zero:df.loc[df[col].isnull(), col] = 0# 将指定列的空值替换为 "N/A"
cols_to_na = ["PRODUCT", "CATEGORY"]
for col in cols_to_na:df[col] = df[col].fillna("N/A")
# 计算数据数量
data_count = df.shape[0]
print(data_count)

示例2:数据筛选

该示例根据数据库中的数据筛选Dataframe。

# 从数据库中获取数据
new_data = [["商品3", 300, 30, "类别3"],["商品4", 400, 40, "类别4"],["商品5", 500, 50, "类别5"],
]
new_data_df = pd.DataFrame(new_data, columns=column_names)
# 将列名转换为英文
new_data_df.rename(columns=column_names_map, inplace=True)# 使用左连接找出new_data_df中独有的数据
diff = pd.merge(new_data_df, df, how='left', indicator=True).loc[
lambda x: x['_merge'] == 'left_only']# 移除_merge列,因为它不再需要了
left_data_df = diff.drop(columns=['_merge'])
print(left_data_df.to_string())

示例3:数据特征工程

该示例为Dataframe添加了两个新特征:

  • 商品ID
  • 商品描述
# 添加商品ID
df["商品ID"] = df.index + 1# 添加商品描述
df["商品描述"] = df["PRODUCT"].apply(lambda x: f"这是商品{x}的描述")
print(df.to_string())

5. 总结

Dataframe是数据分析的强大工具,可以帮助我们轻松完成各种数据处理任务。通过学习Dataframe,我们可以提高数据分析效率,从而做出更好的决策。

完结!

相关文章:

  • kafka学习笔记四(面试题)
  • QML中动态表格修改数据
  • SpringSecurity入门demo(四)权限校验
  • SpringMVC 学习(七)之报文信息转换器 HttpMessageConverter
  • python difflib --- 计算差异的辅助工具
  • 华为OD技术面试案例6-2024年
  • golang 装饰器模式详解
  • MongoDB聚合运算符:$ceil
  • FastJson中“$ref 循环引用检测”的问题
  • k8s pv与pvc理解与实践
  • Python环境搭建:一站式指南
  • Linux:使用nslookup和dig查询DNS记录信息
  • [计算机网络]--五种IO模型和select
  • c语言数据结构(5)——栈
  • 数字快速增长动画插件vue-countupjs
  • [译] 理解数组在 PHP 内部的实现(给PHP开发者的PHP源码-第四部分)
  • 「前端」从UglifyJSPlugin强制开启css压缩探究webpack插件运行机制
  • android高仿小视频、应用锁、3种存储库、QQ小红点动画、仿支付宝图表等源码...
  • ComponentOne 2017 V2版本正式发布
  • JS 面试题总结
  • OSS Web直传 (文件图片)
  • Puppeteer:浏览器控制器
  • Python socket服务器端、客户端传送信息
  • SSH 免密登录
  • TypeScript迭代器
  • 编写高质量JavaScript代码之并发
  • 对象引论
  • 简单基于spring的redis配置(单机和集群模式)
  • 将回调地狱按在地上摩擦的Promise
  • 让你成为前端,后端或全栈开发程序员的进阶指南,一门学到老的技术
  • 实现简单的正则表达式引擎
  • 网页视频流m3u8/ts视频下载
  • 小程序 setData 学问多
  • 写代码的正确姿势
  • 追踪解析 FutureTask 源码
  • 做一名精致的JavaScripter 01:JavaScript简介
  • 如何在 Intellij IDEA 更高效地将应用部署到容器服务 Kubernetes ...
  • ​ ​Redis(五)主从复制:主从模式介绍、配置、拓扑(一主一从结构、一主多从结构、树形主从结构)、原理(复制过程、​​​​​​​数据同步psync)、总结
  • ​决定德拉瓦州地区版图的关键历史事件
  • #include到底该写在哪
  • ()、[]、{}、(())、[[]]等各种括号的使用
  • (01)ORB-SLAM2源码无死角解析-(66) BA优化(g2o)→闭环线程:Optimizer::GlobalBundleAdjustemnt→全局优化
  • (20050108)又读《平凡的世界》
  • (安全基本功)磁盘MBR,分区表,活动分区,引导扇区。。。详解与区别
  • (八)光盘的挂载与解挂、挂载CentOS镜像、rpm安装软件详细学习笔记
  • (附源码)springboot宠物医疗服务网站 毕业设计688413
  • (附源码)计算机毕业设计SSM基于健身房管理系统
  • (三)mysql_MYSQL(三)
  • (十六)串口UART
  • (提供数据集下载)基于大语言模型LangChain与ChatGLM3-6B本地知识库调优:数据集优化、参数调整、Prompt提示词优化实战
  • (一)Dubbo快速入门、介绍、使用
  • (转)Groupon前传:从10个月的失败作品修改,1个月找到成功
  • ..回顾17,展望18
  • .Net Web窗口页属性
  • .NET分布式缓存Memcached从入门到实战