Python Pandas包学习小计

Python Pandas 高级数据操作 数据透视表 可以使用自定义函数来执行更复杂的聚合操作。通常通过 groupby 方法结合 apply 函数来实现。apply 函数可以对分组数据应用任意函数,从而实现灵活的数据处理。需要定义一个自定义函数,该函数将对分组的数据进行操作。这个函数可以执行任何计算,从简单的数学运算到复杂的逻辑。可以使用 groupby 方法对数据进行分组,并使用 apply 方法应用自定义函数。Python pandas.DataFrame.pivot_table函数方法的使用。 阅读详情

pandas一般用于读取.csv文件,有些类似于电子表格,使用Python进行数据处理时经常会用到,以前学过一次,总不用容易忘记,再次简单记录。

  • Pandas基础
#Pandas 基础
import pandas as pd
import numpy as np
np.random.seed(1)
dates = pd.date_range('20181001',periods = 6)
s = pd.Series([1,2,np.nan,0,8,9],index = dates)
df = pd.DataFrame(np.random.randn(6,5),index = [2,3,1,0,9,6],columns = [i for i in 'acbed'])
df1 = pd.DataFrame(np.random.randn(6,4))
dic = {'a':[1.,2],'b':[2,3],'c':[3,4],'d':[4,5]}
df2 = pd.DataFrame(dic,index = ['a','b'])   #字典里的key为列,values是每列的数据
print(df)
df2.dtypes  #查看dataframe的数据类型
df2.index  #查看dataframe的行号
df2.columns #查看dataframe的列号
df2.values  #查看dataframe的值(内容),即去掉行标签和列标签的纯数组形式,可转换成numpy进行后续操作。
df.describe() #描述dataframe的属性(一般针对于数字操作)
df.sort_index(axis = 1,ascending=False)  #排序,axis = 0 是对行进行排序,axis = 1 是对列进行排序,ascending = False 指的是逆序
df.sort_values(by = 'a',ascending = False )   #排序,针对'a'列的元素降序(从大到小)排序

#pandas选择数据
#打印某一列 da.a 或者 da['a']
df['b']
#打印前几行
df[:4]

#select by label : loc
df.loc[3]  #index = 3 (不是第三行) ,即标签为3这行的数据
df.loc[:,['a','b']]  #打印所有行的第‘a'、'b'列数据

#select by position :iloc
df.iloc[3]  #打印第3行(其实是第4行)位置的数据
df.iloc[2:4,1:3]
df.iloc[[0,2,5],0:3] #若是df[[0,2,5],0:3]则不行,会报错,df[]只能显示行,eg:df[2],df[:3]

#mixed
df.ix[:2,['aa','bb']]


#筛选功能
print(df[df['a']<3])  #最后的结果不仅仅是‘a’列,还包含‘bcd’列
print(df.a[df.a<3])  #如此表示结果仅仅含有‘a’列


#增加列
df['e'] = np.nan  #增加一列e,值为np.nan
df['f'] = pd.Series([1,2,3,4,5,6],index = pd.date_range('20180101',periods = 6)) #以Series形式增加一列‘f’
  • 使用Pandas处理缺失数据 
#pandas处理缺失数据
dates = pd.date_range('20180101',periods = 6)
df = pd.DataFrame(np.random.randn(24).reshape((6,4)),index = dates,columns = ['a','b','c','d'])
np.random.seed(1)
df.iloc[0,1] = np.nan
df.iloc[1,2] = np.nan
print(df)


#丢弃含有nan的行列
#how:{'any','all'},how这个属性里面有两个值,‘any’和‘all’,any表示只要有nan则选择丢弃,‘all’表示该axis中全为nan时候才丢弃
df = df.dropna(axis = 0,how = 'any')
df.isnull()            #对应每一个值会显示为True 或者False
np.any(df.isnull() == True) #对于比较大的dataFrame结构形式,可通过这种方式查看是否含有nan值
  • Pandas中数据的合并
import pandas as pd
import numpy as np

#合并数据
df1 = pd.DataFrame(np.ones((3,4))*0,columns = ['a','b','c','d'])
df2 = pd.DataFrame(np.ones((3,4))*1,columns = ['a','b','c','d'])
df3 = pd.DataFrame(np.ones((3,4))*2,columns = ['a','b','c','d'])
#print(df1)
#print(df2)
#print(df3)
#第一种合并方向
pd.concat([df1,df2,df3],axis = 0,ignore_index = True) #最后一个参数ignore_index为对行号进行操作,True表示从头重新排序,默认为False即保留各自本身的index

#第二种合并方式
df4 = pd.DataFrame(np.ones((3,4))*1,columns = ['a','b','c','d'],index = [1,2,3])
df5 = pd.DataFrame(np.ones((3,4))*2,columns = ['b','c','d','e'],index = [2,3,4])
print(df4)
print(df5)
pd.concat([df4,df5],axis = 0,join = 'outer',ignore_index = True) #默认的就是outer(对于多出来的行列里面的数值为nan)
pd.concat([df4,df5],axis  = 0,join = 'inner',ignore_index = True) #则会进行裁剪,只保留两者的共同部分
#当pd.concat()中的axis = 1时候
pd.concat([df4,df5],axis = 1,join_axes = [df4.index])#这里的join_axes表示列号(index)按照df4的index

#Pandas中的append(默认是接在下面)
#将df4和df5结合
df4.append(df5,ignore_index = True) 

#在df4下面添加一行pd.Series
s1 = pd.Series([1,2,3,4],index = ['a','b','c','d'])
df4.append(s1,ignore_index = True) #此处需要加上ignore_index = True

Pandas中pd.get_dummies的使用可参考https://www.jianshu.com/p/c324f4101785,具体举例子如下:

import pandas as pd
import numpy as np
np.random.seed(1)
dates = pd.date_range('20181001',periods = 6)
s = pd.Series([1,2,np.nan,0,8,9],index = dates)
df = pd.DataFrame(np.random.randn(6,5),index = [2,3,1,0,9,6],columns = [i for i in 'acbed'])
df['e'] = [1,2,'vf','ve',5,np.nan]    #增加一列‘e’

df = df.sort_index(axis =  1)   #按列进行排序
print(df)
#对df中的非数字类型特征值进行操作,将其利用0或1来代替,这样的结果是增加了列数,同时最后的dummy_na = True表示的是np.nan也作为一个特征值,用列表示出来,默认是dummy_na = False
df = pd.get_dummies(df,dummy_na = True)  
print(df)

 

 

 

【python数据分析基础】—pandas透视表和交叉表 透视表是excel和其他数据分析软件中一种常见的数据汇总工具。它是根据一个或多个键对数据进行聚合,并根据行和列上的分组键将数据分配到各个矩形区域中。 阅读详情

相关推荐

深入构建加密货币价格预测系统:从数据获取到模型优化的完整指南!

🏆本文收录于「编程与技术实战」专栏,此专栏涵盖了C/C++编程、人工智能、数据结构、机器学习等技术领域的内容,助你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!

**My Coding Family** 1276

【跟李沐学AI学习笔记】数据预处理

os.makedirs(name,mode=0o777,exist_ok=False)的作用是创建多层目录。name是想创建的目录名,mode是要为目录设置的权限数字模式,默认的模式为0o777,exist_ok为是否在目录存在时触发异常,exist_ok为True时在目标目录已存在的情况下不会触发FileExistsError异常。 os.path.join是把目录和文件名合并成一个路径,如果不存在以“/”开始的参数,则函数会自动加上。存在以“/”开始的参数,从最后一个以“/”开头的参数开始拼接,之前的

weixin_45912723的博客 2707

FusionCompute8.0.0实战指南:从零部署CNA与VRM环境

本文以华为FusionCompute 8.0.0为例,详细介绍了如何利用老旧硬件从零开始部署CNA计算节点与VRM管理节点的完整实战指南。内容涵盖实验环境准备、CNA安装与网络配置、VRM虚拟机部署方案对比,并提供了典型故障排查与性能调优技巧,帮助读者低成本构建可用的虚拟化学习环境。

weixin_29306317的博客 315

动手学深度学习v2—01数据操作+数据预处理

此次用到的虚拟环境:pytorchmwy项目名称:limuAI所需框架和工具:pytorch,pandas。

CV在读 1086

SystemVerilog学习总结

因为选择的offer是IC验证,以前学的是设计,所以只能再学systemverilog(SV)和UVM了。在学习SV和UVM之前,我认为需要学习以下几个部分:数字电路、c++和verilog。因为IC验证确实有不少别的专业之前没学过数字电路和Verilog,所以还是最好先学习一下。 知识点的总结主要是通过systemverilog验证-测试平台编写指南这本书进行的,所以请看书。通过对这本书的目录进行重点的划分,然后再进行相关知识点的总结。最后,给出自己收集的别的博主IC EDA环境的虚拟机,以及使用虚拟机需

博主毕竟还是人,肯定会有错误,各位看的时候发现错误提出来就好 1万+

超速U盘选购避坑指南:如何通过Rx Detect机制识别真伪USB3.0设备

本文深入解析了USB 3.0超速U盘的选购避坑要点,重点介绍了通过Rx Detect机制识别真伪设备的核心原理。文章提供了从软件检测到实际性能测试的完整方案,帮助消费者和技术人员有效辨别虚假的USB3.0设备,确保获得真正的超速传输体验。

weixin_29189373的博客 446

pd.get_dummies()

get_dummies 是利用pandas实现one hot encode的方式 pandas.get_dummies(data, prefix=None, prefix_sep='_', dummy_na=False, columns=None, sparse=False, drop_first=False) import pandas as pd df = pd.DataFrame([ ['green' , 'A'], ['red' ,

sueong的博客 1030

092、多sensor帧同步在环视系统中的实现——基于瑞芯微RK3588的PPS同步与曝光同步方案

摘要: 本文探讨了瑞芯微RK3588平台在360环视系统中实现多摄像头帧同步的技术方案。针对环视拼接常见的动态场景错位问题,提出了PPS同步与曝光同步相结合的解决方案。通过GPIO硬件触发实现四路摄像头同步曝光,配合I2C全局曝光控制,将时间误差控制在0.5ms内。文章详细解析了RK3588设备树配置、内核驱动实现中的关键细节,包括同步信号处理、寄存器原子写入等核心技术点,并分享了量产中遇到的温度漂移、信号完整性等实际问题及解决方法。最终通过硬件整形和电源优化,将同步抖动控制在±5μs以内,有效解决了动态拼

zzfmlxs的博客 34

Pandas常用数据预处理方法及指令

1.前言 前一段时间,在小伙伴的怂恿下参加了京东的Jdata数据大赛(并以剪刀石头布的方式决定的组长,草率! 不过非常感谢小伙伴们对我的信任,还有我们一起学习的热情让我一下恢复了对学习的xing趣了呢),作为一名小白,抱着学习的心态去的,所谓的万事开头难是真的,从来没接触过这种比赛或工作的我也是一头雾水,以前没上过数据处理和挖掘的课程,不知从何下手,就是在这样一穷二白的情况

weixin_36711901的博客 1万+

倍福--实现TCP/IP的配置

控制器为CX5120,需要和上位机做通信,选择TCP/IP的通讯方式,本文介绍TCP/IP通信的操作步骤。 目 录 软硬件版本 3 1.1. 倍福Beckhoff 3 1.1.1. 控制器硬件 3 1.1.2. 控制软件 3 1.2. 串口调试助手 3 1.2.1. TCP调试通信助手 3 授权文件 3 2.1 Lib文件 3 2.2. CAB文件 4 PLC程序编写 4 3.1. 引入TCP/IP库文件 4 3.2. Client端程序 5 3.2.1. 建立相关变量 5 3.3.2. 编写连接功能块

weixin_41883890的博客 5730

深度解析大众点评反爬机制:构建高可用店铺评论采集系统(2026最新实战)

在中文互联网数据采集领域,大众点评(现归属美团)始终占据着特殊地位。其丰富的UGC(用户生成内容)包含了超过2亿条真实店铺评论、数百万家商户的详细POI信息以及用户行为数据,对商业分析、口碑监测、本地生活趋势研究具有不可替代的价值。然而,大众点评的安全团队投入了顶级资源构建反爬系统——从请求签名、行为验证到设备指纹,其防御强度甚至超过多数电商平台。本文将完整呈现一套2026年依然有效的技术方案,包括破解核心参数_token、动态代理池维护、无头浏览器指纹伪装等,最终产出一个生产级采集框架。目录。

2201_76125261的博客 814

【深入浅出学习笔记】李沐《动手学深度学习2.0》之数据预处理学习

本文主要是学习李沐:动手学深度学习2.0在线课程的笔记。 视频地址:https://zhuanlan.zhihu.com/p/29125290。 教材全本:https://zh-v2.d2l.ai/ 本课教材:https://zh-v2.d2l.ai/chapter_preliminaries/pandas.html 2021.05.08 数据预处理学习 os文件/目录方法模块学习 举一个例子,我们首先创建一个人工数据集,并存储在csv(逗号分隔值)文件 …/data/house_tiny.csv 中。以其

程序员龙一 5096

可疑物品遗留检测系统:基于YOLOv8的智能安防解决方案

数据采集与标注模块:负责收集和标注可疑物品图像数据模型训练模块:基于YOLOv8算法训练检测模型推理检测模块:加载训练好的模型进行实时检测用户界面模块:提供友好的操作界面和可视化结果展示报警模块:当检测到可疑物品时触发报警机制:包含多种暴力场景和可疑物品SUAVe:监控场景下的异常行为与物品数据集:包含多种可疑物品自建数据集:针对特定场景收集的数据背包(backpack)手提箱(suitcase)无人看管的包裹(package)可疑箱子(box)

YOLO 435

python pandas 数据透视表_python – Pandas数据透视表:列顺序和小计

小计和MultiIndex.from_arrays的解决方案.最后concat和所有数据帧,sort_index并添加所有总和:#replace km/h and convert to intdf.windspeed = df.windspeed.str.replace('km/h','').astype(int)print (df)FID admin0 admin1 admin2 wind...

weixin_39717152的博客 624

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Pandas 数据透视表:列顺序和小计

在这个例子中,我们使用`aggfunc`参数定义了一个字典,其中键是列名('sales'),值是一个列表,包含两个函数:求和和平均数。这样我们就得到了每个销售员对每个产品的总销售额以及平均销售额的数据透视表,并且小计行被保留了。为了调整列顺序并去除小计行,可以使用`margins=False`参数。在Python中使用pandas库创建数据透视表时,可以通过设置参数来调整列的顺序以及是否包含小计行。# 默认情况下,列顺序按照它们在DataFrame中的顺序排列,并包含小计行。# 调整列顺序并去除小计行。

536

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

pandas实现分类汇总--小计,总计

有一批数据需要分类汇总和总计,看了一下pandas的groupby,可以实现。具体思路:先分组,分组后计算改分类的汇总小计,然后对dataframe进行拼接;分类汇总计算好了之后,计算总体的汇总,然后在进行拼接 具体代码: def gen_pivot_table(): df = pd.read_excel(os.path.join(BASE_DIR, EXCEL_FILE_FROM)) last_total_df = calculation_total(df, ["页面展示pv", "页面

python_tty的专栏 1万+

pandas 小计

读取数据 数据库数据读取/存储: import pymysql from sqlalchemy import create_engine conn = create_engine('mysql+pymysql://root:123456@localhost:3306/databasename?charset=utf8') sql = 'select * from tb_name' df = pd.read_sql(sql=sql,con=con,index_col=True,coerce_float=T

pylittlebrat的博客 2270

Padas交叉表新增二级分类小计

Padas的pivot_table做交叉表变换后支持总计功能,但是分类的小计功能需要自己动手实现。在实现这个小计的功能时,好好研究了下交叉表的属性,写了下开发流程,当初走了点弯路,总结如下: 下图是开发前手写的流程: 按着这个流程开发到中途遇到点麻烦,又转而尝试了其它方式,因为我们的应用是把交叉表导出到html, 调用了to_html方法,所以,想直接在导出的html字符串上面插...

aci0054的博客 370

python 求和_python pandas行、列求和及累加求和

python pandas行、列求和及累加求和data[‘合计’]=data.apply(lambda x: x.sum(),axis=1) #按列相加各行数data.loc[‘小计’]=data.apply(lambda x: x.sum(),axis=0) #按行相加各列,增加小计,要注意的是小计中变成字符,序列变object要时刻关注data.中type的变化,可以用data.dtypes...

weixin_39860919的博客 5265

python pandas行、列求和及累加求和

python pandas行、列求和及累加求和 data[‘合计’]=data.apply(lambda x: x.sum(),axis=1) #按列相加各行数 data.loc[‘小计’]=data.apply(lambda x: x.sum(),axis=0) #按行相加各列,增加小计, 要注意的是小计中变成字符,序列变object 要时刻关注data.中type的变化,可以用 data.d...

weixin_45903952的博客 2万+

python pandas 条件求和_python pandas行、列求和及累加求和

python pandas行、列求和及累加求和data[‘合计’]=data.apply(lambda x: x.sum(),axis=1) #按列相加各行数data.loc[‘小计’]=data.apply(lambda x: x.sum(),axis=0) #按行相加各列,增加小计,要注意的是小计中变成字符,序列变object要时刻关注data.中type的变化,可以用data.dtypes显...

weixin_39840729的博客 6681

python小计总结-

Python classmethod 修饰符 classmethod 修饰符对应的函数不需要实例化,不需要 self 参数,但第一个参数需要是表示自身类的 cls 参数,可以来调用类的属性,类的方法,实例化对象等。 app = Flask(name) 是个什么东西 第一部分,初始化:所有的Flask都必须创建程序实例, web服务器使用wsgi协议,把客户端所有的请求都转发给这个程序实例 程序实...

WangJY的技术博客 217

pandas中的数据透视表

pandas中使用数据透视表

码码的哈士奇 516

Python学习小计

1、初学Python最好选择2.7版本,因为大部分Python书籍的示例代码是基于这个版本的 2、Python安装可以参考百度经验完成 如果在电脑上同时安装2个版本,则CMD启动时只需要: py -2.7 启动2.7版 py -3.5启动3.5版 在运行脚本时 同样 py -2.7 D:\test.py 表示用python2.7运行 3、通过pip方式安装必要的包pandas、ma...

weixin_30633405的博客 69

Python 帮同事用pandas快速筛选Excel文件

1. python 支持中文名变量,直接用列名作变量有好处,省得注释以及想很多变量名称来命名。 2. DataFrame筛选条件的逻辑运算用 & | ,其运算级别高于“大于”“小于”“等于”等。 3. 取DataFrame的列,可以用 df['收款人'] 也能用 df.收款人,我觉得用后者更方便点。 4. 源数据“摘要”列中有空单元格,读入DataFrame中后其值为nan,这个起先没注意到代码一直报错。后查询到df有.fillna()方法可以替换掉空值。 5. 求行数可以直接用len(df),也可...

汉阳Hann's Home 7000
上一篇: Python 遍历文件夹下的文件
下一篇: Kaggle-House Prices
Halo_Linch
博客等级 码龄11年 11粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值