Datawhale组队-pandas(上)基础(自学)

Pandas是Python的核心数据分析支持库,提供了快速灵活、明确的数据节后,旨在简单、直观地处理关系型、标记型数据。Pandas的目标是称为Python数据分析时间与实战的必备高级工具,其长远目标是称为最强大、最灵活,可以支持任何语言的开源数据。

Pandas适用于处理以下类型的数据:

  • 与SQL或Excel表类似的,含异构列的表格数据;
  • 有序和无序(非固定频率)的时间序列数据
  • 带行列标签的矩阵数据,包括同构或异构数据
  • 任意其它形式的观测、统计数据集,数据转入Pandas数据结构时不必事先标记。

Pandas的优势:

  • 处理浮点与非浮点数据里的缺失数据,表示为NaN;
  • 大小可变:插入或删除DataFrame等多维对象的列;
  • 自动、显式数据对齐:显式地将对象与一组标签对齐,也可以忽略标签,在Series、DataFrame计算时自动与数据对齐;
  • 强大、灵活的分组功能:拆分-应用-组合数据集,聚合、转换数据;
  • 把Python和Numpy数据结构里不规则、不同索引的数据轻松地转换为DataFrame对象;
  • 基于智能标签,对大型数据集进行切片、花式索引、子集分解等操作;
  • 直观地合并(merge)、连接(join)数据集;
  • 灵活地重塑(reshape)、透视(pivot)数据集;
  • 轴支持结构化标签:一个刻度支持多个标签;
  • 成熟的IO工具:读取文本文件(csv)、Excel文件、数据库等来源的数据,利用超快的HDF5格式保存、加载数据;
  • 时间序列:支持日期范围生成、频率转换、移动窗口统计、移动窗口线性回归、日期位移等时间序列功能。

 

一、文件读取与写入

1.读取与写入

常见的文件格式有csv、txt、xls、xlsx格式

#读取csv
df = pd.read_csv('data/table.csv')
#读取txt
df_txt = pd.read_table('data/table.txt') #可设置sep分隔符参数
#读取xls或xlsx
df_excel = pd.read_excel('data/table.xlsx')
#写入csv
df.to_csv('data/table.csv')
#写入xls或xlsx
df_excel.to_excel('data/table.xlsx')

二、基本数据结构

Pandas的两种数据类型:Series是带标签的一维数组,可存储整数、浮点数、字符串、Python对象等类型的数据。轴标签统称为索引,Data是由多种类型的列构成的二维标签数据结构,支持一维和多维数据输入,还可以有选择人地传递index和columns参数。

1.Series

对于一个Series,常用的属性为值(values),索引(index),名字(name),类型(dtype)

s = pd.Series(np.random.randn(5),index=['a','b','c','d','e'],name='这是一个Series',dtype='float64')
print(s.name)
print(s.values)
print(s.index)
print(s.dtype)

2.DataFrame

创建一个DataFrame

df = pd.DataFrame({'col1':list('abcde'),'col2':range(5,10),'col3':[1.3,2.5,3.6,4.6,5.8]},index=list('一二三四五'))#从DataFrame取出一列为Series
print(df['col1'])
print(type(df))
print(type(df['col1']))#修改行或列名
df.rename(index={'一':'one'},columns={'col1':'new_col1'})#DataFrame的属性和方法
print(df.index)
print(df.columns)
print(df.values)
print(df.shape)
print(df.mean())

索引对齐特性:

df1 = pd.DataFrame({'A':[1,2,3]},index=[1,2,3])
df2 = pd.DataFrame({'A':[1,2,3]},index=[3,1,2])
df1-df2 #由于索引对齐,因此结果不是0

列的删除与添加(drop或pop、del和直接增加、assign)

df = pd.DataFrame({'col1':list('abcde'),'col2':range(5,10),'col3':[1.3,2.5,3.6,4.6,5.8]},index=list('一二三四五'))
#删除
#drop
df.drop(index='五',columns='col1')
#del
df['col1']=[1,2,3,4,5]
del df['col1']
#pop
df['col1']=[1,2,3,4,5]
df.pop('col1')#直接增加列(以索引为准)
df1['B']=list('abc')
#用assign,不会对原DataFrame修改
df1.assign(C=pd.Series(list('def')))

三、常用基本函数

1、head和tail

head是默认展示df的前5行,可通过head(10)展示第十行

tail是默认展示df的后5行,可通过tail(10)展示第十行

2.nunique和unique

nunique显示有多少个唯一值

unique显示所有的唯一值

3.count和value_counts

count返回非缺失值元素个数

value_counts返回每个元素有多少个

4.describe和info

describe默认统计数值型数据的各个统计量,可以自行选择分位数

info函数返回有那些列,有多少非缺失值、每列的类型

5.idxmax和nlargest

idxmax函数返回最大值所在索引,在某些情况下特别适用,idxmin功能类似¶

nlargest函数返回前几个大的元素值,nsmallest功能类似

6.clip和replace

clip是对超过或者低于某些值的数进行截断

replace是对某些值进行替换¶

7.apply函数

df['Math'].apply(lambda x:str(x)+'!').head() #可以使用lambda表达式,也可以使用函数df.apply(lambda x:x.apply(lambda x:str(x)+'!')).head() #这是一个稍显复杂的例子,有利于理解apply的功能

四、排序

1.索引排序

df.set_index('Math').head() #set_index函数可以设置索引
df.set_index('Math').sort_index().head() #可以设置ascending参数,默认为升序,True

2.值排序

#单值排序
df.sort_values(by='Class').head() 
df.sort_values(by=['Address','Height']).head()

练习:

 

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

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

相关文章

Linux C目标文件

LinuxC目标文件 宗旨:技术的学习是有限的,分享的精神是无限的。 一、目标文件格式(ELF格式) 编译器编译源代码后生成的文件叫做目标文件。目标文件是已经编译后的可执行文件,只是还没有经过链接的过程。 PC平台流行…

Win2003下Exchange2003部署图解之七

Exchange 2003 基本配置在邮件服务器SERVERVM下打开“第一个存储组”,(这里我们只看到一个缺省的存储组,在Exchange2003标准版中我们只能建立一个存储组,而企业版中我们可以建立4个存储组)选择“邮箱存储”&#xff0c…

嵌入式Linux操作UART实例

1引言串口是我们实际工作中经常使用的一个接口,比如我们在Linux下使用的debug串口,它用来登录Linux系统,输出log。另外我们也会使用串口和外部的一些模块通信,比如GPS模块、RS485等。这里对Linux下串口使用做个总结,希…

Datawhale组队-Pandas(下)文本数据(打卡)

一、string类型的性质 1.string和object的区别 string类型和object不同之处有三: 字符存取方法(string accessor methods,如str.count)会返回相应数据的Nullable类型,而object会随缺失值的存在而改变返回类型某些Se…

sql语句遇到的问题

分别统计所有男同学的平均分,所有女同学的平均分及总平均分 //SELECT AVG(score),name,(SELECT AVG(score) FROM student) as 总平均分 from student GROUP BY sex; 按照分数从小到大的顺序打印分数大于总平均分的学员信息(id-name-sex-score),并将分数大于总平均分…

新唐单片机代码评审总结

昨晚上,我们一个同事组织了一个小会议,大家一起讨论了一个项目的单片机代码,这个单片机用的是新唐单片机,期间大家也讨论了一些问题,总结一下,希望对写单片机的同学们有帮助。我这个同事写的代码非常优秀&a…

Linux直接与编译安装Vsftpd服务器

1、VSFTPD简述如果试问哪种FTP服务器最安全?那么在UNIX和Linux中,首推的就是VSFTP(Very Secure FTP Daemon,非常安全的FTP服务器)。顾名思义,VSFTPD设计的出发点就是安全性。同时随着版本的不断升级&#x…

main函数

main函数 宗旨:技术的学习是有限的,分享的精神是无限的。 Linux下运行的程序多数是带参数的,例如ls –l等。一般来说,所有程序代码都是从main函数开始执行的。 main函数 (1)函数原型 int main(int argc,…

Datawhale组队-Pandas(下)分类数据(打卡)

Categoricals是pandas的一种数据类型,对应于统计学中的Categorical variables(分类变量),分类变量是有限且固定的可能值,例如:gender(性别)、血型、国籍等,与统计学的Cat…

【分享】一个集成tracert和ping的网络监测工具

最近接到一个需求,需求背景是这样的:目前Windows平台下本身都有tracert和ping的实现,而且可以直接在cmd下使用。 需求中有两个要求: 1. Windows平台中的tracert执行速度太慢,一次tracert可能要花十几分钟。所以&#x…

秀操作 | 函数宏的三种封装方式

作者:☆星轨★ 链接:https://blog.csdn.net/qq_35692077/article/details/1029949591. 函数宏介绍函数宏,即包含多条语句的宏定义,其通常为某一被频繁调用的功能的语句封装,且不想通过函数方式封装来降低额外的弹栈压…

Sun为何一掷千金拿下MySQL?

标题:深度解析 Sun为何一掷千金拿下MySQL?作者:IT168 东方蜘蛛链接:[url]http://tech.it168.com/j/2008-01-21/200801211529940.shtml[/url]摘要:近日美国著名软件开发商Sun宣布,将以10亿美元的天价收购开源…

Datawhale组队-Pandas(下)时序数据(打卡)

Pandas可以处理任何领域的时序数据(time series),使用Numpy的datetime64 和timedelta64 类型,Pandas整合了来自其他Python库的大量功能,如Scikits.TimeSeries,并为处理时间序列数据创建了大量新功能。 一、…

Linux C高级编程——文件操作之系统调用

Linux C高级编程文件操作之系统调用 宗旨:技术的学习是有限的,分享的精神是无限的! 库函数是一些完成特定功能的函数,一般由某个标准组织制作发布,并形成一定的标准。使用库函数编写的函数一般可以应用于不同的平台而…

解析一个C语言俄罗斯方块游戏,包你看了就会

最近在看俄罗斯方块的游戏,看到一个大神写的俄罗斯方块代码,非常非常优秀,拿出来解析给大家看看,也希望大家自己尝试运行试试,从中能得到一些启发。#先了解下俄罗斯方块的几个形状一共分成 7 形状,有的形状…

认识星座、八大行星的观察

1. 北斗七星 北斗七星属于大熊座,春夏可见;2. 八大行星 太阳系的八大行星基本位于同一轨道面,如以地球轨道面为基准,相互间轨道倾角的差距甚至不到5度(不包括水星)。太阳系各大行星公转平面与地球黄道平面的…

ERP项目需要持续的呵护

ERP项目需要持续的呵护<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />众所周知&#xff0c;实施ERP是一持续优化的过程&#xff0c;而在这优化完善的过程中&#xff0c;单靠一次实施上线是不够的&#xff0c;尤其是在ERP上线后…

Datawha组队——Pandas(下)综合练习(打卡)

import pandas as pd import numpy as np import missingno as msno import matplotlib.pyplot as plt plt.rcParams[font.sans-serif][SimHei] #用来正常显示中文标签 plt.rcParams[axes.unicode_minus]False #用来正常显示负号#读取数据 df pd.read_csv(端午粽子数据.csv) d…

Linux C高级编程——文件操作之库函数

Linux C高级编程——文件操作之库函数 宗旨&#xff1a;技术的学习是有限的&#xff0c;分享的精神是无限的 ——为什么要设计标准I/O库&#xff1f; 直接使用API进行文件访问时&#xff0c;需要考虑许多细节问题 例如&#xff1a;read、write时&#xff0c;缓冲区的大小该如…

【转】spring之任务调度

由于现在大部分的系统都是采用了spring&#xff0c;所以所有的例子都结合spring来构建&#xff0c;目前主要的任务调度分为三种&#xff1a; Java自带的java.util.Timer类&#xff0c;这个类允许你调度一个java.util.TimerTask任务。使用这种方式可以让你的程序按照某一个频度执…