python的pandas模块使用总结
创始人
2025-05-28 18:12:35

python的pandas模块

内容目录

    • python的pandas模块
      • 一、创建
      • 二、基础属性信息
      • 三、数值信息
      • 四、数据过滤
      • 五、数据计算
      • 六、数据分析
      • 七、数据输出
      • 八、注意事项
      • 九、补充说明

pandas是一个提供了数据操作和数据分析工具的模块。它支持两种主要数据结构:Series和DataFrame。
Series是一种类似于NumPy数组的对象,它由一组数据(任何NumPy数据类型)以及一组与之相关的数据标签(index)组成。
DataFrame则是一种二维表格类型数据结构,它可以容纳不同数据类型的列,包括数字,字符串和布尔值等。它类似于Excel或SQL表格。
在使用pandas时,我们通常需要进行的操作包括读取数据、数据清洗、数据分析和数据可视化等。
使用pandas可以大大提高数据处理的效率和准确性,特别是在数据预处理、建模和报表制作等方面。它是数据科学的核心之一,非常值得学习和掌握。

pands在日常数据处理中的使用方法总结了七大类,如果更详细的使用说明和更全面的函数说明可以浏览官网:https://pandas.pydata.org/
首先导入pandas包

import pandas as pd

一、创建

DataFrame的创建可以由多种方式创建,比如从列表、csv、excel、json等格式

  1. 自定义创建
import pandas as pd
import numpy as np
df_define = pd.DataFrame({"id":[1001,1002,1003,1004,1005,1006],"date":pd.date_range('20130102', periods=6),"city":['Beijing ', 'SH', ' guangzhou ', 'Shenzhen', 'shanghai', 'BEIJING '],"age":[23,44,54,32,34,32],"category":['100-A','100-B','110-A','110-C','210-A','130-F'],"price":[1200,np.nan,2133,5433,np.nan,4432]},columns =['id','date','city','category','age','price'])
  1. 从csv文件导入
import pandas as pddf = pd.DataFrame(pd.read_csv('csv_path.csv'))
  1. 从excel文件导入
import pandas as pddf_excel = pd.DataFrame(pd.read_excel('excel_path.excel', index_col = None))

二、基础属性信息

  1. 查看全部数值
df_values = df.values
  1. 维度查询
df_shape = df.shape
  1. 基础信息
df_info = df.info
  1. 查看所有的行索引名
df_index = df.index
df_index_values = df.index.values
  1. 查看所有的列索引名
df_column = df.columns
df_columns_values = df.columns.values
  1. 每一列数据格式
df_dtypes = df.dtypes
  1. 指定列数据格式
df_only_dtypes = df['name'].dtypes

三、数值信息

  1. 查看指定列的数值
df_column_value = df['name'].values
  1. 查看指定行的数值
df_row_value = df.iloc[1].values
  1. 查看空值
df_isnull = df.isnull()
  1. 查看指定列的空值
df_column_isnull = df['name'].isnull
  1. 查看开头和结尾的数值
# 默认五行
df_head = df.head()
df_tail = df.tail()
  1. 按索引提取指定行的数据
df_loc_2 = df.loc[2]
  1. 按索引提取范围数据
df_iloc = df.iloc[0:3]
# 提取几行几列
df_iloc_column = df.iloc[:3,:2]
# 提取某行某列
df_iloc_com = df.iloc[[0,1,2],[0,1]]
print(df_iloc)
print(df_iloc_column)
print(df_iloc_com)
  1. 提取截止到某日的数据
# 设置索引
df_ix = df.set_index('dt')
df_ix_dt = df_ix[:'2023-01-03']
  1. 提取截止到某日的某几列数据
df_ix_column = df_ix.loc[df_ix.index > '2023-01-02',['name']]

四、数据过滤

  1. 过滤某属性大于n的行
df_filter_age = df[df.age > 10]
  1. 过滤某属性大于n的行,仅要name列
df_filter_only_age = df['name'][df.age > 10]
  1. 过滤列表中出现的值
fliter_list = ['tom','jery']
df_filter_list_value = df[df.name.isin(fliter_list)]
  1. 多条件过滤
# 过滤出name='tom'并且age=1
df_select_and = df.loc[(df['name'] == 'tom') & (df['age'] == 1),['name','age']]
# 过滤出name='tom'或者age>1的
df_select_or = df.loc[(df['name'] == 'tom') | (df['age'] > 1), ['name','age']]
  1. 排序
# 过滤name!='tom'后按照age排序
df_select_sort = df.loc[(df['name'] != 'tom'), ['name','age']].sort_values(['age'], ascending=False)

五、数据计算

  1. 计数
# 对name列计数
df_count = df.groupby('name').count()
  1. 求和
df_sum = df['age'].sum()
  1. 最大值
df_max = df['age'].max()
  1. 最小值
df_min = df['age'].min()
  1. 平均值
df_avg = df['age'].mean()
  1. 分组聚合
# 按照name分组,取age的count、mean、sum
df_agg = df.groupby('name').agg({'age':['count', 'mean', 'sum']})
print(df_max)
print(df_min)
print(df_avg)
print(df_agg)
'''
sum:求和
mean: 平均值
count:计数
std: 标准差
var: 方差
min: 最小值
max: 最大值
median: 中位数
quantile: 分位数
cov: 协方差
'''

六、数据分析

  1. 数据采样
# 简单采样
df_sample = df.sample(n=3)
# 设置权值
weights = [0.3,0.3,0.3,0.4]
df_sample_weight = df.sample(n=2, weights=weights)
# 放回采样
df_replace_true = df.sample(n=2, replace=True)# 不放回采样
df_replace_false = df.sample(n=2, replace=False)
  1. 数据表统计
df_desc = df.describe().round(2).T
  1. 相关性分析
df_corr = df.corr()
# 两个字段的相关性分析
df_corr_column = df['age'].corr(df['age'])

七、数据输出

  1. 输出到csv
df.tocsv('path.csv')
  1. 输出到excel
df.to_excel('path.xlsx',sheet_name='sheet_name')

八、注意事项

  1. 避免直接修改原始数据:Pandas中的数据结构是可变的,如果直接修改原始数据,会影响到整个数据集。可以使用.copy()方法创建一个副本,防止修改原始数据。
  2. 处理缺失值:Pandas中的缺失值用NaN表示。在处理缺失值时,可以使用fillna()方法来填充缺失值,使用dropna()方法来删除缺失值。
  3. 索引和选择:Pandas中的索引和选择功能十分强大,但是需要注意的是,当使用.loc()方法时,包含了结尾的元素,并且使用整数索引时需要使用iloc()方法。
  4. 数据类型和格式:Pandas中的数据类型非常灵活,可以使用astype()方法转换数据类型。在读取和写入数据时,需要注意数据格式和类型,以避免不必要的错误。
  5. 性能和内存:Pandas中的一些操作可能会消耗很多内存,可以使用groupby()方法等一些高效的方式来处理数据。
  6. 规范化数据:在进行数据分析工作前,需要对数据进行规范化处理,例如处理重复值、异常值等。
  7. 可视化数据:Pandas中提供了强大的可视化功能,可以使用matplotlib或seaborn库来创建数据可视化图表。
  8. 处理日期和时间:Pandas中提供了一些实用的方法来处理日期和时间,例如pd.to_datetime()和pd.date_range()等方法。在处理时区和跨时区数据时,也需要注意时区设置。

九、补充说明

pandas中的loc和iloc都是用于选取数据的方法,但两者的使用方式、效果和用途有些不同。

  1. loc是基于标签位置进行选取的方法,iloc是基于整数位置进行选取的方法。
  2. loc使用的索引是基于数据的行和列的标签,通过指定行和列的标签来进行选取数据。
  3. iloc使用的索引是基于整数的位置,通过指定行和列的位置来进行选取数据。
  4. loc可以使用布尔索引进行数据的选取,而iloc不支持布尔索引。
  5. loc的选区时包含的是右侧和下方的所有值,而iloc选区时,不包含右侧和下方的最后一个值。
  6. loc只能使用行和列的标签,使用较为灵活,适合于选取标签比较明确的数据;iloc选区时是通过位置编号进行选取的,使用较为固定,适合于选取数据点比较明确的数据。
    因此,在使用pandas进行数据选取时,需要根据数据的标签或位置来选择合适的方法。

相关内容

热门资讯

指针 指针数组 数组指针 二级... 一、本文研究: 指针数组 与 二级指针 数组 与 数组指针 上面的两两一对࿰...
Ubuntu20 + KVM虚... 1 命令汇总 # 查看一下linux是32位还是64位:file /bin/ls # ...
Spring Boot 整合 ... Spring Boot 整合 RabbitMQ 多种消息模式 准备工作集成 RabbitMQ发布/订...
【BEV】TPVFormer复... 1. 前言 在环视图像的网络中,常使用鸟瞰图来进行特征提取,尽管比体素表...
华测RTK参数/华测GPS/华... 1.i93 视觉RTK华测导航i93视觉RTK是集成了华测目前新型视觉技术的一款革新型视觉RTK产品...
西瓜视频登录页面 题目 代码 登录页面td{width: 160px;height: ...
Android kotlin ... 文章目录 一、什么是SharedPreferences1、将数据存储到SharedPreferenc...
算法训练营day53_动态规划... 算法训练营day53_动态规划(3.17提前写) 1143.最长公共子序...
案例23-服务出现频繁掉线情况 目录 一、背景介绍 二、分析原因 1.nacos中data文件的作用 2. data路径下prot...
【文心一言】什么是文心一言,如... 文心一言什么是文心一言怎么获得内测资格接下来就给大家展示一下文学创作商业文案创作数理逻辑推算中文理解...
第31篇:Java流和文件操作... 目录 1、读取控制台输入流 1.1 从控制台读取多字符输入流 1.2 从控制台读取字符串流 2、读写...
Linux/Debian/Ub... 文章目录前言相关资源下载OpenCVCUDA下载CUDNN下载编译错误异常 前言 本文用来记录在l...
虚拟数字人和GPT-4的结合,... 最近,ChatGPT一直在互联网上狂飙,从 去年11月底推出到月活过亿&...
第三章 Liunx的常用命令 文章目录一、Liunx常用命令查看内存 free -m回到根目录 直接 cd 回车回到上一级目录 c...
素人做课会踩的3大坑,你中了几... 素人做课会踩的3大坑,你中了几个?大坑:盲目模仿别人做课的...
element输入框el-in... element输入框el-input之格式控制 (1)限制输入的长度&#...
oracle19c迁移手册 windows10- 查看当前用户所有的表:select table_name fro...
docker-compose搭... # 关闭防火墙 systemctl stop firewalld.service # 永久关闭防火墙...
【2023最新Activiti... 1.流程实例 1.1 什么是流程实例 流程实例(ProcessInstance)代表流程定义的执行实...
基于ggdensity包的等高... 简介 科研过程中,需要绘制某个后验密度/其他的形状。在发表论文中常常使用等高线来满足该...
Leetcode 105. 从... 题目: 给定两个整数数组 preorder 和 inorder ,其中 ...
点亮LED 目录 一、LED 硬件控制方式 二、LED 应用程序 1、定义宏 2、main函数 ①、打开文件  ...
随想008:烂摊子 我看到过很多离谱的现象。比如: 程序 代码重复、命名随意、逻辑混乱、甚至对齐都不一致&...
2023长沙到广州的火车时刻表... 今天给各位分享2023长沙到广州的火车时刻表,从长沙到广州高铁最新...的知识,其中也会对长沙到广州...
车载DVD一体机导航升级教程(... 本篇文章极速百科给大家谈谈车载DVD一体机导航升级教程(凯立德)(超详细),以及汽车凯立德导航用u盘...
圈内sp是什么意思(sp圈里是... 今天给各位分享圈内sp是什么意思的知识,其中也会对sp圈里是什么样的进行解释,如果能碰巧解决你现在面...
鸡蛋撞地球(鸡蛋撞地球怎么制作... 本篇文章极速百科给大家谈谈鸡蛋撞地球,以及鸡蛋撞地球怎么制作对应的知识点,希望对各位有所帮助,不要忘...
Vue2基础语法速通2 目录计算属性计算属性的简写监视属性深层次监视watch 和 computed 区别绑定 class ...
2023年全国最新高校辅导员精... 百分百题库提供高校辅导员考试试题、辅导员考试预测题、高校辅导员考试真题、辅导员证考试题库等ÿ...
Web前端:Angular和R...   在编程领域,Angular 和 React 对于前端开发人员来说是目前最流行的两款...