【Python】pandas模块操作大型数据集

pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。
Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。pandas提供了大量能使我们快速便捷地处理数据的函数和方法。
Pandas是python的一个数据分析包,最初由AQR Capital Management于2008年4月开发,并于2009年底开源出来,目前由专注于Python数据包开发的PyData开发team继续开发和维护,属于PyData项目的一部分。
Pandas最初被作为金融数据分析工具而开发出来,因此,pandas为时间序列分析提供了很好的支持。 
Pandas的名称来自于面板数据(panel data)和python数据分析(data analysis)。panel data是经济学中关于多维数据集的一个术语,在Pandas中也提供了panel的数据类型。

主要数据结构为两个类:DataFrame和Series
Series:一维数组,与Numpy中的一维array类似。二者与Python基本的数据结构List也很相近。Series如今能保存不同种数据类型,字符串、boolean值、数字等都能保存在Series中。
Time- Series:以时间为索引的Series。
DataFrame:二维的表格型数据结构。很多功能与R中的data.frame类似。可以将DataFrame理解为Series的容器。
Panel :三维的数组,可以理解为DataFrame的容器。
Panel4D:是像Panel一样的4维数据容器。
PanelND:拥有factory集合,可以创建像Panel4D一样N维命名容器的模块。

# -*- coding: utf-8 -*-
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
#作者:cacho_37967865
#博客:https://blog.csdn.net/sinat_37967865
#文件:pandas_model.py
#日期:2019-09-06
#备注:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的,主要数据结构为两个类:
DataFrame: 可以理解为表格,类似于Excel的表格 pandas.core.frame.DataFrame
Series: 表示单列。DataFrame包含多个列,即多个Series,每个Series都有名称。pandas.core.series.Series
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''import numpy as np
import pandas as pd# 创建一个pandas对象
def pandas_create():df = 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'])#print(df,'\n')return df# 查看信息
def pandas_show(df):print(type(df))print('查看数据表基本信息:',type(df.info),'\n',df.info)print('查看维度元组tuple(行数、列数):',df.shape)print('查看每一列数据的格式:',type(df.dtypes),'\n',df.dtypes)print('查看某一列值和数据类型:','\n',df['price'])print('查看数据表的值:',type(df.values),'\n',df.values)print('查看默认前5行数据:','\n',df.head(10))print('查看默认后5行数据:','\n',df.tail())print('查看id列中最大值对应的索引:', '\n', df.id.idxmax(0))       # 只针对数值类型#print('显示所有列最大值所对应的索引:', '\n', df.idxmax(0))print('统计信息展示:','\n',df.describe())print('统计每一列有多少缺失值:', '\n', df.isnull().sum())print('统计每一列非空个数:', '\n', df.count())print('统计某列是否有重复数据:', '\n', df.age.is_unique)          # false有重复数据print('按列的值排序:', '\n', df.sort_values(by='age'))print('按顺序进行多列降序排序:', '\n', df.sort_values(['age','category'],ascending=False))print('选择多列数据:', '\n', df[['id','price']])print('选择行数据通过切片获取:', '\n', df[0:3])print('选择行数据通过一个单独列的值来筛选:', '\n', df[df.age > 32])print('行和列转置:', '\n', df.T)print('统计每一列(数字类型)平均值:', '\n', df.mean())print('统计每一列(数字类型)平均值取整:', '\n', round(df.mean()))print('统计每一行(数字类型)平均值:', '\n', df.mean(1))# inplace = True时会改变旧的DataFrame
def pandas_deal(df):#print('删除列改变原来数据:','\n',df.drop('price', axis = 1, inplace = True))print('删除列不改变原来数据:','\n',df.drop('price', axis = 1))print('删除所有均为空值的行:', '\n', df.dropna(how='all'))print('删除包含缺失值的行:','\n',df.dropna())print('填充所有空值(NaN)用数字0:','\n',df.fillna(value=0))print('填充某一列空值(NaN)用数字0:','\n',df.price.fillna(value=0))print('填充某一列空值(NaN)用price均值:','\n',df['price'].fillna(df['price'].mean(),inplace = True))print('修改某个字段的值替换:','\n',df['city'].replace('SH', 'shanghai',inplace = True))print('修改某个字段的值大小写转换','\n',df['city'].str.lower())print('修改某一列的数据格式:','\n',df['age'].astype(float))print('表格值:','\n',df)

 

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

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

相关文章

djangohttp://127.0.0.1:8000/media/test.jpg直接显示图片media配置

文件目录如下: 1、在settings中加入: STATIC_URL /static/ STATICFILES_DIRS (os.path.join(BASE_DIR,static),) #MEDIA_DIR (主要用于获取路径) MEDIA_DIR os.path.join(BASE_DIR,media) # 需要加入的MEDIA_DIR路径变量 #ME…

Python pytest框架之@pytest.fixture()和conftest详解

一、fixture简介 学pytest就不得不说fixture,fixture是pytest的精髓所在,类似unittest中setup/teardown这种前后置东西。但是比它们要强大、灵活很多,它的优势是可以跨文件共享 fixture的目的是提供一个固定基线,在该基线上测试可…

LInux下Ubuntu下查看端口占用及关闭

1、查看所有进程 ps -ef 或者 ps -aux a:显示所有程序 u:以用户为主的格式来显示 x:显示所有程序,不以终端机来区分 2、查看使用某端口的占用 lsof -i:8080 或者: netstat -ap|grep 8090 3、查看到进程id之后,使用netstat命令查看其占用的…

【Python】pandas模块中更改Series的数据类型

今天我们主要解决以下实际问题:一份黑名单数据存储在excel中,由于数据量庞大,现需要通过pandas找到某一列的重复数据,处理后再存入到excel中。 pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的,主…

Python Pytest调用fixture之@pytest.mark.usefixtures()、叠加usefixtures、@pytest.fixture(autouse=True)用法详解

usefixtures与传fixture区别 如果fixture有返回值,那么usefixture就无法获取到返回值,这个是装饰器usefixture与用例直接传fixture参数的区别。 当fixture需要用到return出来的参数时,只能讲参数名称直接当参数传入,不需要用到re…

ubuntu Django项目后台不挂断运行之screen命令

1、安装screen apt install screen 2、新建一个screen screen -S web这样就会新开一个窗口。cd到你需要的目录然后输入你想输入的命令。输入: python manage.py runserver 0.0.0.0:80 3、重新开一个窗口,列出所有screen进程 screen -ls4、如果之前的s…

【Python】Paramiko模块实现Linux服务器远程文件操作

ssh是一个协议,OpenSSH是其中一个开源实现,paramiko是Python的一个库,实现了SSHv2协议(底层使用cryptography)。 有了Paramiko以后,我们就可以在Python代码中直接使用SSH协议对远程服务器执行操作,而不是通过ssh命令对…

Python Pytest中fixture之yield唤醒teardown和终结函数addfinalizer

引入 我们之前学习的都是测试用例的前置固件,也就是相当于“setup”。说到这,细心的你可能想到了,那有没有什么方式可以表示出“teardown”?这就是我们今天学习的yield和addfinalizer。 yield yield是一个关键字,它不…

django项目时间与Ubuntu时间不一致

今天发布项目后才发现log时间和win10系统时间或者date不一致。 查了好多。 最后:是django项目中settings中时区的问题 在settings中默认为UTC时区,我们应转换为中国时区 即做一下修改: LANGUAGE_CODE zh-Hans TIME_ZONE Asia/Shanghai…

【Python】Paramiko模块在Windows10中import ssl报错的处理方法

上一篇文章【Python】Paramiko模块实现Linux服务器远程文件操作 介绍了如何通过Paramiko进行 sftp的操作,但最近遇到一个问题,换上家里的windows10电脑后,执行脚本时发现报错:\lib\site-packages\cryptography\hazmat\bindings\op…

【Jmeter篇】Linux环境下安装部署运行Jmeter

JDK安装和配置 1、使用yum线上安装jdk1.8 yum -y list java* #浏览线上所有jdk版本列表 yum -y list java-1.8*#浏览线上jdk1.7版本列表 yum -y install java-1.8.0-openjdk* #下载安装jdk1.8套件 java -version #检查是否安装成功 2、配置全局环境变量 which java ls -…

django项目连接远程数据库

1、远程数据库开放连接权限 如果连接错误,请考虑 1)用户添加访问其他ip权限 2)3306端口是否开放 3)阿里云服务器安全组规则是否添加3306端口 2、django项目中settings中的host填写远程数据库的公有ip,及填写远程数…

【Python实战】使用python批量生成发票

一般的贸易或者货运型公司,经常需要做发票,有时候我们会遇到需要做大批量重复性的发票时,如果人工一个个去做,即耗时而且容易出错,这时我们可以用的python和excel相关的模块去批量生成。 现在有这样一个场景&#xff…

【Jmeter篇】Jmeter踩坑记(一)

踩坑一: Response code: Non HTTP response code: java.net.SocketTimeoutException Response message: Non HTTP response message: connect timed out 查看Load time的时间要大于request设置的connect time out时间,所以抛出该异常。可能是由于服务端有…

Ajax动态拼接li并绑定事件

一、二对新增元素 再次进行绑定相应事件&#xff0c;例如在 Ajax 中的 success 返回函数中&#xff0c;再执行完新增元素的代码后进行绑定 success: $(body).append("<li idnew> new Li </li>"); //这里统一用click事件为例 $(#new).click(function(){}…

【PS】如何将截图获取的印章迁移到新图片上

有时候我们需要特殊签名或者合同印章时&#xff0c;可以通过其他图片上截图后&#xff0c;经过处理后放置到新的图片上&#xff0c;这个时候我们可以通过ps进行处理&#xff0c;主要三个流程&#xff1a; 1.截取需要的签名或印章&#xff0c;用ps消除多余的信息&#xff1b; 2…

【Jmeter篇】Jmeter分布式调度压测部署

Jmeter 是java 应用&#xff0c;对于CPU和内存的消耗比较大&#xff0c;因此&#xff0c;当需要模拟数以千计的并发用户时&#xff0c;使用单台机器模拟所有的并发用户就有些力不从心&#xff0c;甚至会引起JAVA内存溢出错误。为了让jmeter工具提供更大的负载能力&#xff0c;j…

echarts案例链接

https://blog.csdn.net/luanpeng825485697/article/details/77198858 http://echarts.baidu.com/echarts2/doc/example/mix4.html#infographic

【工具】FTP软件FileZilla下载和连接服务器

作为一名偏后台程序测试的测试工程师&#xff0c;经常会接触运维相关工作&#xff0c;与服务器打交道。 一般公司会搭建内网环境和外网环境&#xff0c;项目开发、SIT测试主要是在内网环境做&#xff0c;然后等到UTA、预投产阶段在外网环境。 如果公司业务量大&#xff0c;多个…

【Fiddler篇】Stave插件之环境映射

Stave是一个Fiddler扩展插件&#xff0c;让Fiddler能将URL映射到本地目录&#xff0c;实现批量文件自动响应。 Fiddler自带的AutoResponder每条自动响应规则只能对应一个本地文件&#xff0c; 在文件数目较多的时候&#xff0c;使用起来很不方便&#xff0c;往往需要部署到本地…