pandas随笔

主要操作两个对象:一维带标签数组 和 二维表格DataFrame

一维带标签数组Series

pd.Series([1, 3, 5, np.nan, 6, 8])  ,结果如下:

 可指定索引,pd.Series([1, 3, 5], index=['a', 'b', 'c'])  

二维表格DataFrame

创建时需要指定列名,如

字典创建

data = {'姓名': ['Alice', 'Bob', 'Charlie'],'年龄': [25, 30, 35],'评分': [85.5, 90.0, 88.5]
}
df = pd.DataFrame(data)

列表创建

列表不像字典,需额外指定列名

data = [['Alice', 25, 85.5],['Bob', 30, 90.0],['Charlie', 35, 88.5]
]
columns = ['姓名', '年龄', '评分']
df = pd.DataFrame(data, columns=columns,index=[索引内容])

 index:指定行索引,为一个列表类型,长度要匹配,可以省去。默认行索引为0,1,2......

上面两种方式结果都如下

表格数据统计

head(n)                查看前n行数据

tail(n)               查看后n行数据

shape                  查看行数、列数

cloumns               查看列名

describe()        统计摘要(计数、均值、标准差等)

info()                查看基本信息

corr()                列与列的相关系数

简单可视化实现(用到pyplot)

将表中的单独一行,或单独一列数据拿出来绘制图表

df[' 列名 '].plot()                  #找出某行数据,以行为x轴

df.loc[' 行索引 '].plot           #找出某行数据,以列为x轴

最后plt.show()即可

表格数据筛选与过滤 

索引查找

按列名索引                df [ '年龄' ]

按位置索引(整数)      df.iloc [ '0' ] #第一行       df.iloc [ 1:3,0:2 ]  #第2-3行,第1-2列(左闭右开)

按标签索引                df.loc [df['年龄'] > 30]          # 筛选年龄>30的行

                                  df.loc [ :, ['姓名', '评分']]      # 选取指定列 

按指定位置索引         df.loc ['行索引', ['A', 'B']]      #指定行+列,若表数据未指定行索引,                                                                                              #默认按 0,1,2.....来

 筛选查找

年龄>30且评分>88的

filtered = df[(df['年龄'] > 30) & (df['评分'] > 88)]

上面方法查找到的数据,定位到之后可直接进行赋值修改

唯一值与去重

unique_names = df['姓名'].unique() # 列中唯一值

df.drop_duplicates(subset=['姓名']) # 按列去重

sort_values(by= '评分' ,ascending=False)                 按评分降序排列,为True时升序

数据清洗

查找无效值,并填充NaN

isnull()        显示无效值信息

fillna(value=0, inplace=True)      填充缺失值,inplace=False时默认填充NAN,也可以value='NaN'

删除缺失信息的行

dropna(subset=[ '评分' ])

依次检测subset中的列 ,将每列中有NaN值存在的所在行进行删除

一般要先进行数据清洗,将表中的空值和None值 转换为NaN,dropna只针对NaN值进行删除

 drop(columns=['年龄差值'], inplace=True)           删除整列

df[ '年龄' ].astype( 'int' )        转换为整数类型

df.[ '评分' ].round(1)              保留1位小数

df['年龄差值'] = df['年龄'] - df['年龄'].min()                新增列(基于现有列计算)

分组

groupby( '年龄' )                按年龄进行分组

df.groupby('年龄')['评分'].mean()    #在年龄这一组,计算评分的平均值

 groupby( '年龄' ).agg                按年龄这一组,进行多列分组聚合

df.groupby('年龄').agg({'评分': 'mean','姓名': 'count'
})

 表格关联合并

表单数据进行合并连接,这里使用内连接为例,数据库内连接、外连接不懂得可以去自行查阅

merge(df1, df2, on = 'ID' ,how = 'inner' )

df1 = pd.DataFrame({'ID': [1, 2, 3], '姓名': ['Alice', 'Bob', 'Charlie']})
df2 = pd.DataFrame({'ID': [2, 3, 4], '成绩': [90, 85, 95]})# 内连接(基于ID列)
merged = pd.merge(df1, df2, on='ID', how='inner')

强拼接,按维度直接进行强拼接(比较生硬)

concat([ df1, df2 ], axis =0)                按行进行拼接,axis=1 为按列

导出/读入数据

  • to_csv( '文件路径+名称 .csv', index = False )       
    • 保存为csv文件,index=False表示不保存行索引
  • to_excel( '文件路径+名称 .xlsx' , sheet_name = '表名', index = False)
    • sheet_name 设置表格的名称,默认为Sheet1,index 表示是否保存行索引
  • read_csv( '文件路径+名称 .csv' )
  • read_excel( '文件路径+名称 .xlsx' , sheet_name = '表名')
    • sheet_name:指定为文件中的哪一个工作表

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

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

相关文章

java教程笔记(十一)-泛型

Java 泛型(Generics)是 Java 5 引入的重要特性之一,它允许在定义类、接口和方法时使用类型参数。泛型的核心思想是将类型由具体的数据类型推迟到使用时再确定,从而提升代码的复用性和类型安全性。 1.泛型的基本概念 1. 什么是泛…

力扣刷题(第四十九天)

灵感来源 - 保持更新,努力学习 - python脚本学习 反转链表 解题思路 迭代法:通过遍历链表,逐个改变节点的指针方向。具体步骤如下: 使用三个指针:prev(初始为None)、curr(初始为…

设置应用程序图标

(1)找一张图片 (2)然后转ico图片 在线生成透明ICO图标——ICO图标制作 验证16x16就可以 降低exe大小 (3) 在xxx.pro修改 添加 (4) 删除 build 和 xxxpro_user文件 (5)编译project 和运行xx.exe (6)右键 设置快捷方式

免费wordpress模板下载

西瓜红色的免费wordpress模板,简洁实用又容易上手,适合新手使用。 下载 https://www.waimaoyes.com/moban/2231.html

【React】React 18 并发特性

React 18 引入了 并发特性(Concurrent Features),这是一次对 React 渲染机制的重大升级,让 React 更加智能、响应更流畅、资源更节省。 我们来详细讲解一下它的原理、特性、API 以及实际应用。 🧠 一、什么是并发特性…

FFMPEG 提取视频中指定起始时间及结束时间的视频,给出ffmpeg 命令

以下是提取视频中指定起始时间及结束时间的 ffmpeg 命令示例: bash 复制 ffmpeg -i input.mp4 -ss 00:01:30.00 -to 00:05:00.00 -c copy output.mp4 其中,-i input.mp4 是指定要处理的输入视频文件为 “input.mp4”。 -ss 00:01:30.00 表示指定视频的起始时间为 1 分 30 …

mybatis的if判断==‘1‘不生效,改成‘1‘.toString()才生效的原因

mybatis的xml文件中的if判断‘1’不生效&#xff0c;改成’1’.toString()才生效 Mapper接口传入的参数 List<Table> queryList(Param("state") String state);xml内容 <where><if test"state ! null and state 1">AND EXISTS(select…

AI 模型分类全解:特性与选择指南

人工智能&#xff08;AI&#xff09;技术正以前所未有的速度改变着我们的生活和工作方式。AI 模型作为实现人工智能的核心组件&#xff0c;种类繁多&#xff0c;功能各异。从简单的线性回归模型到复杂的深度学习网络&#xff0c;从文本生成到图像识别&#xff0c;AI 模型的应用…

01-python爬虫-第一个爬虫程序

开始学习 python 爬虫 第一个获取使用最多的网站-百度 源代码 并将源代码保存到文件中 from urllib.request import urlopenurl https://www.baidu.com resp urlopen(url)with open(baidu.html, w, encodingutf-8) as f:f.write(resp.read().decode(utf-8))知识点&#xf…

四六级监考《培训学习》+《培训考试》

1 线上注册 &#xff08;网址&#xff1a; https://passport.neea.edu.cn 2 登录培训平台参加线上必修课程学习和考核 &#xff08;平台网址&#xff1a; https://kwstudy.neea.edu.cn 注意选择学员入口&#xff09; 3 考试要求&#xff1a;考试成绩须达应到80分以上&#xf…

回顾Java与数据库的30年历程

当 Java 1.0 于 1996 年推出时&#xff0c;语言和互联网都与今天大不相同。当时&#xff0c;网络主要是静态的&#xff0c;而 Java 承诺通过注入交互式游戏和动画来为网络注入活力&#xff0c;这一承诺极具前景。根据 1995 年写给《连线》杂志的 David Banks 的说法&#xff0c…

simulink有无现成模块可以实现将三个分开的输入合并为一个[1*3]的行向量输出?

提问 simulink有无现成模块可以实现将三个分开的输入合并为一个[1*3]的行向量输出&#xff1f; 回答 Simulink 本身没有一个单独的模块能够直接将三个分开的输入合并成一个 [13] 行向量输出&#xff0c;但是可以通过 组合模块实现你要的效果。 ✅ 推荐方式&#xff1a;Mux …

代码训练LeetCode(24)数组乘积

代码训练(24)LeetCode之数组乘积 Author: Once Day Date: 2025年6月5日 漫漫长路&#xff0c;才刚刚开始… 全系列文章可参考专栏: 十年代码训练_Once-Day的博客-CSDN博客 参考文章: 238. 除自身以外数组的乘积 - 力扣&#xff08;LeetCode&#xff09;力扣 (LeetCode) 全…

NLP学习路线图(十七):主题模型(LDA)

在浩瀚的文本海洋中航行&#xff0c;人类大脑天然具备发现主题的能力——翻阅几份报纸&#xff0c;我们迅速辨别出"政治"、"体育"、"科技"等板块&#xff1b;浏览社交媒体&#xff0c;我们下意识区分出美食分享、旅行见闻或科技测评。但机器如何…

vue对axios的封装和使用

在 Vue 项目中&#xff0c;使用 axios 进行 HTTP 请求是非常常见的做法。为了提高代码的可维护性、统一错误处理和请求拦截/响应拦截逻辑&#xff0c;对axios进行封装使用。 一、基础封装&#xff08;适用于 Vue 2 / Vue 3&#xff09; 1. 安装 axios npm install axios2. 创…

HTML实现端午节主题网站:龙舟争渡,凭吊祭江诵君赋。

名人说:龙舟争渡,助威呐喊,凭吊祭江诵君赋。——苏轼《六幺令天中节》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 一、项目概览:传统与现代的技术碰撞1. 核心特性一览2. 网站结构设计二、技术亮点深度解析1. 响应式布局的精妙设计2. CSS动画系统的…

【Redis】笔记|第9节|Redis Stack扩展功能

Redis Stack 扩展功能笔记&#xff08;基于 Redis 7&#xff09; 一、Redis Stack 概述 定位&#xff1a;Redis OSS 扩展模块&#xff08;JSON、搜索、布隆过滤器等&#xff09;&#xff0c;提供高级数据处理能力。核心模块&#xff1a; RedisJSON&#xff1a;原生 JSON 支持…

如何选择专业数据可视化开发工具?为您拆解捷码全功能和落地指南!

分享大纲&#xff1a; 1、捷码核心功能&#xff1a;4维能力支撑大屏开发 2、3步上手&#xff1a;可视化大屏开发操作路径 3、适配场景&#xff1a;8大行业已验证方案 在各行各业要求数字化转型时代&#xff0c;数据可视化大屏已成为众多企业数据驱动的核心工具。面对市场上繁杂…

测试W5500的第11步_使用ARP解析IP地址对应的MAC地址

本文介绍了基于W5500芯片的ARP协议实现方法&#xff0c;详细阐述了ARP请求与回复的工作机制。ARP协议通过广播请求和单播回复实现IP地址与MAC地址的映射&#xff0c;确保局域网设备间的可靠通信。文章提供了完整的STM32F10x开发环境下的代码实现&#xff0c;包括网络初始化、SP…

在树莓派上添加音频输入设备的几种方法

在树莓派上添加音频输入设备可以通过以下步骤完成&#xff0c;具体方法取决于设备类型&#xff08;如USB麦克风、3.5mm接口麦克风或HDMI音频输入&#xff09;。以下是详细指南&#xff1a; 1. 连接音频输入设备 USB麦克风/声卡&#xff1a;直接插入树莓派的USB接口。3.5mm麦克…