导航:首页 > 编程语言 > python扩展库pandas的使用案例

python扩展库pandas的使用案例

发布时间:2022-05-26 02:56:10

⑴ 怎么利用pandas做数据分析

Pandas是python下一个开源数据分析的库,它提供的数据结构DataFrame极大的简化了数据分析过程中一些繁琐操作。
1. 基本使用:创建DataFrame. DataFrame是一张二维的表,大家可以把它想象成一张Excel表单或者Sql表。Excel 2007及其以后的版本的最大行数是1048576,最大列数是16384,超过这个规模的数据Excel就会弹出个框框“此文本包含多行文本,无法放置在一个工作表中”。Pandas处理上千万的数据是易如反掌的sh事情,同时随后我们也将看到它比SQL有更强的表达能力,可以做很多复杂的操作,要写的code也更少。
说了一大堆它的好处,要实际感触还得动手码代码。首要的任务就是创建一个DataFrame,它有几种创建方式:
(1)列表,序列(pandas.Series), numpy.ndarray的字典
二维numpy.ndarray
别的DataFrame
结构化的记录(structured arrays)
(2)其中,二维ndarray创建DataFrame,代码敲得最少:
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randn(10, 4))
df
0 1 2 3
0 0.927474 0.127571 1.655908 0.570818
1 -0.425084 -0.382933 0.468073 -0.862898
2 -1.602712 -0.225793 -0.688641 1.167477
3 -1.771992 -0.692575 -0.693494 -1.063697
4 -0.456724 0.371165 1.883742 -0.344189
5 1.024734 0.647224 1.134449 0.266797
6 1.247507 0.114464 2.271932 -0.682767
7 -0.190627 -0.096997 -0.204778 -0.440155
8 -0.471289 -1.025644 -0.741181 -1.707240
9 -0.172242 0.702187 -1.138795 -0.112005
(3)通过describe方法,可以对df中的数据有个大概的了解:
df.describe()
0 1 2 3
count 10.000000 10.000000 10.000000 10.000000
mean -0.189096 -0.046133 0.394722 -0.320786
std 1.027134 0.557420 1.258019 0.837497
min -1.771992 -1.025644 -1.138795 -1.707240
25% -0.467648 -0.343648 -0.692281 -0.817865
50% -0.307856 0.008734 0.131648 -0.392172
75% 0.652545 0.310266 1.525543 0.172096
max 1.247507 0.702187 2.271932 1.167477
2. 改变cell。
3. group by。
4. 读写文件。

⑵ 新手关于python中pandas函数的使用

利用Python的pandas数据结构来读取excel表格的数据,部分代码如下:

#-*- coding:utf-8 -*-
import pandas as pd
import matplotlib.pyplot as plt

catering_data="catering_sale.xls"
data=pd.read_excel(catering_data,index_col=u'日期')
#读取数据,指定"日期"列为索引列

大多数书上都是这样写的,但是在Python2.7上运行时出现错误。(没有在Python3.x版本试过)
出现了如下问题:
这里写图片描述
使用help(pd.read_excel)发现参数中有必选参数sheetname,加入到函数中,代码如下:

#-*- coding:utf-8 -*-
import pandas as pd
import matplotlib.pyplot as plt

catering_data="catering_sale.xls"
data=pd.read_excel(catering_data,sheetname=0,index_col=u'日期')

运行成功。
sheetname=0 的意思是:读取xls文件中的第一个表格。(假设文件中有很多个表格)
另外,也可以将文件转换成csv格式,就不需要这个参数了。代码如下:

catering_data="catering_sale.csv"
data=pd.read_csv(catering_data)

⑶ python pandas怎么用

需要安装的软件,步骤如下:下载setuptools,注意对应Python的版本,完成后运行exe即可完成安装pippip-1.4.1.tar.gz安装pip3.1解压pip-1.4.1.tar.gz3.2运行CMD,进入命令行3.3用CD命令进入pip解压目录3.4输入"pythonsetup.pyinstall"3.5添加环境变量path=C:\Python26\ArcGIS10.0\Scripts验证是否安装成功,运行CMD,进入命令行,输入pip;如果出现pip的用法介绍,说明安装成功。进入命令行,输入"pipinstallpackage",package为安装包名称,就可以随意使用了。

⑷ python pandas 高效的分析两列数据,并生成结果到三列。

首先,为了以后在处理大量数据的效率,一定要养成【不】使用循环的方式处理pandas或者numpy数据的习惯, 最好使用包内置的方法或者被重载过的通用方法来实现。以前刚接触pandas的时候,处理10W+的是数据的时候,用循环处理,等了半天都没有结果。
对于你的代码,发现虽然有if了, 但却没有else哈,也就是说你只考虑到匹配的情况下的逻辑, 但对于没匹配的处理却没有写出来。

⑸ python(pandas模块)

1.什么是pandas? numpy模块和pandas模块都是用于处理数据的模块。 numpy主要用于针对数组进行统计计算,处理数字数据比较方便。 pandas除了可以处理数字数据,还可...

⑹ 怎么使用Python中Pandas库Resample,实现重采样,完成线性插值

#python中的pandas库主要有DataFrame和Series类(面向对象的的语言更愿意叫类) DataFrame也就是
#数据框(主要是借鉴R里面的data.frame),Series也就是序列 ,pandas底层是c写的 性能很棒,有大神
#做过测试 处理亿级别的数据没问题,起性能可以跟同等配置的sas媲美
#DataFrame索引 df.loc是标签选取操作,df.iloc是位置切片操作
print(df[['row_names','Rape']])
df['行标签']
df.loc[行标签,列标签]
print(df.loc[0:2,['Rape','Murder']])
df.iloc[行位置,列位置]
df.iloc[1,1]#选取第二行,第二列的值,返回的为单个值
df.iloc[0,2],:]#选取第一行及第三行的数据
df.iloc[0:2,:]#选取第一行到第三行(不包含)的数据
df.iloc[:,1]#选取所有记录的第一列的值,返回的为一个Series
df.iloc[1,:]#选取第一行数据,返回的为一个Series
print(df.ix[1,1]) # 更广义的切片方式是使用.ix,它自动根据你给到的索引类型判断是使用位置还是标签进行切片
print(df.ix[0:2])
#DataFrame根据条件选取子集 类似于sas里面if、where ,R里面的subset之类的函数
df[df.Murder>13]
df[(df.Murder>10)&(df.Rape>30)]
df[df.sex==u'男']
#重命名 相当于sas里面的rename R软件中reshape包的中的rename
df.rename(columns={'A':'A_rename'})
df.rename(index={1:'other'})
#删除列 相当于sas中的drop R软件中的test['col']<-null
df.drop(['a','b'],axis=1) or del df[['a','b']]
#排序 相当于sas里面的sort R软件里面的df[order(x),]
df.sort(columns='C') #行排序 y轴上
df.sort(axis=1) #各个列之间位置排序 x轴上
#数据描述 相当于sas中proc menas R软件里面的summary
df.describe()
#生成新的一列 跟R里面有点类似
df['new_columns']=df['columns']
df.insert(1,'new_columns',df['B']) #效率最高
df.join(Series(df['columns'],name='new_columns'))
#列上面的追加 相当于sas中的append R里面cbind()
df.append(df1,ignore_index=True)
pd.concat([df,df1],ignore_index=True)
#最经典的join 跟sas和R里面的merge类似 跟sql里面的各种join对照
merge()
#删除重行 跟sas里面nokey R里面的which(!plicated(df[])类似
df.drop_plicated()
#获取最大值 最小值的位置 有点类似矩阵里面的方法
df.idxmin(axis=0 ) df.idxmax(axis=1) 0和1有什么不同 自己摸索去
#读取外部数据跟sas的proc import R里面的read.csv等类似
read_excel() read_csv() read_hdf5() 等
与之相反的是df.to_excel() df.to_ecv()
#缺失值处理 个人觉得pandas中缺失值处理比sas和R方便多了
df.fillna(9999) #用9999填充
#链接数据库 不多说 pandas里面主要用 MySQLdb
import MySQLdb
conn=MySQLdb.connect(host="localhost",user="root",passwd="",db="mysql",use_unicode=True,charset="utf8")
read_sql() #很经典
#写数据进数据库
df.to_sql('hbase_visit',con, flavor="mysql", if_exists='replace', index=False)
#groupby 跟sas里面的中的by R软件中dplyr包中的group_by sql里面的group by功能是一样的 这里不多说
#求哑变量
miper=pd.get_mmies(df['key'])
df['key'].join(mpier)
#透视表 和交叉表 跟sas里面的proc freq步类似 R里面的aggrate和cast函数类似
pd.pivot_table()
pd.crosstab()
#聚合函数经常跟group by一起组合用
df.groupby('sex').agg({'height':['mean','sum'],'weight':['count','min']})

#数据查询过滤

test.query("0.2
将STK_ID中的值过滤出来
stk_list = ['600809','600141','600329']中的全部记录过滤出来,命令是:rpt[rpt['STK_ID'].isin(stk_list)].
将dataframe中,某列进行清洗的命令
删除换行符:misc['proct_desc'] = misc['proct_desc'].str.replace('\n', '')
删除字符串前后空格:df["Make"] = df["Make"].map(str.strip)
如果用模糊匹配的话,命令是:
rpt[rpt['STK_ID'].str.contains(r'^600[0-9]{3}$')]

对dataframe中元素,进行类型转换

df['2nd'] = df['2nd'].str.replace(',','').astype(int) df['CTR'] = df['CTR'].str.replace('%','').astype(np.float64)

#时间变换 主要依赖于datemie 和time两个包
http://www.2cto.com/kf/201401/276088.html
#其他的一些技巧
df2[df2['A'].map(lambda x:x.startswith('61'))] #筛选出以61开头的数据
df2["Author"].str.replace("<.+>", "").head() #replace("<.+>", "")表示将字符串中以”<”开头;以”>”结束的任意子串替换为空字符串
commits = df2["Name"].head(15)
print commits.unique(), len(commits.unique()) #获的NAME的不同个数,类似于sql里面count(distinct name)
#pandas中最核心 最经典的函数apply map applymap

⑺ 如何系统地学习Python 中 matplotlib,numpy,scipy,pandas

Python 可以由一系列的平台支持。它编译完备的格式可以在 Windows 和 MacOS 及其自身 Tk 扩充平台上运行,并可用于开发对用户友好的界面。在 UNIX 和其它平台上, Python 可以作为源代码由程序员自行编译,或者与其它预编的二进制编码共同使用。它超强的适应性更能让它有跨平台适用的能力:用它在 UNIX 平台上书写的程序段95%的情况下无须作任何修改就可用于 Mac 和 PC 机。扩充 Tk 平台对它的支持,甚至可以让基于GUI 格式的应用程序不用大动筋骨就可在上述三种平台上做自由切换,还保持着统一的界面。 正因为这种天然生就的跨平台运行能力,Python 还能支持一些平台的扩充平台,从而简化和免除了对其它语言和环境的适应过程。与 SunOS / Solaris 工具带有 Sun 音频设备及 SGI版本带有视音频接口(包括 OpenGL)一样,Windows Pytyon 解释器也同样带有 Visual C++ 类库和 Windows 音频驱动接口。此外还有与 COM 对象进行通讯的功能。 超大的功能性 Python 几乎无所不能。它的内核很小,但却拥有足够的基本程序块用于设计大部分应用软件。而且在某些情况下该程序语言还可以扩充与 C,C++ 和 Java 语言并用,因此没有它编不了的程序。 Python 解释器还带有极为强大的补充模块库,用于扩充语言能力,进行网络通讯、文本处理和规则表达式匹配。 虽然 Python 的主要特点是隐去程序员的许多低级复杂工作,它还能支持钩、扩充程序以及其它功能对某些操作系统进行低级接入。正因为这种高低兼行的特点,Python 可以视作和 C,Visual Basic 同等级别的语言,或是介于二者间的其它级别的语言。 超凡的扩容性 因为 Python 本身用 C 语言写成(某些扩充平台采用C++语言编写),而且它采用开放式的源代码,这样可以对程序本身进行主动扩充。另外该程序语言的许多模块由 C 和 C++ 界面支持,包括一些诸如网络和DBM数据库接入等基本构件,以及其它如 Tk 等许多先进工具。 此外,Python 还能融入 C 或 C++ 语言,从而可以使用 Python 语言为应用程序提供编程界面。也正基于它的跨语言开发的支持能力,还可以使用 Python 设计应用程序后再输送到为 C 语言环境而无须将程序用 C 语言重写,因为两种语言均可同时使用。 JPython 是一个完全采用 Java 语言编写的 Python 解释器,这就意味着任何 Python 程序都可与一个 Java 对象或是使用 Python 对象的应用程序相联结。 超常的简易性 了解了 Python 以上几个基本特点后,再对程序语言它内容进行了解就相对容易了。该语言内核很小,而且格式和文体简明。由于所有其它的组件和扩充部分都使用完全一样的句法结构,利用 Python 编程会很快让人速成。 但这并不意味着 Python 语言就没有复杂的地方。对其许多扩充部分和内库都必需经过深思熟虑后方可进行有效的利用。 超强的功能性 拥有如此广泛的支持和博采众长的特征,Python 在处理一系列问题上都显得特别有效。以下为它的功能简介: 计算器: 由 Python 支持的一个扩充程序叫 NumPy,它可以提供与许多标准数学库相连的接口。Python 语言还拥有无限精确的特性,可以单独处理100位数字的算术。 文字处理器: Python 能够对任何数据进行分割、累加和总结。它的模块可以对日志文件行中的元素进行分割,并根据内置的数据种类对其信息进行记录和总结,最后才进行输出。它的规则表达式库使程序员可以使用 emacs,Perl 等等。 这再次证明 Python 的无所不能,曾经有程序员还利用 Python 编制成非常复杂的 SGML 处理工具。 便捷的应用开发: Python对程序员而言一目了然,用它编程迅速有效。它博大的模块库可以提供针对不同协议、工具和库的接口。免除重新开发之苦。 由于Python 还支持 Tk 工具,所以可以在几个小时内完成一个应用软件,而用 Perl 语言可能会需要2到3天,用 C 语言甚至要几个星期。 跨平台开发: Python 以中立方式支持不同的一系列平台,如果用户使用的系统包含不同的平台,使用 Python 开发应用程序则再好不过;它这种适应性也可以为系统预留使用其它工具的可能。对于频繁更换平台用户,Python 是个理想的选择。 为最终用户提供软件服务时,Python 也是个备选方案,可以避免同时用不同应用软件编程的时间和费用。 系统设备 Python旨在避免操作系统中低级部分的滋扰,但如若需要主动进入这些低级部分时也完全可以通过相应的工具和扩充件来实现。与操作系统一样, Python 可以进入相同的的功能,并予以备份和扩充,而且备份和扩充后的功能会增加 Python 的所有的适应性和接口能力。 互联网程序设计 Python 带有的标准模块可以对网络插槽进行初级和协议级别的通讯,比如,如果要从 POP 服务器上读取电子邮件,Python 随带的库模块可以做到。另外, Python 还支持 XML、HTML和 CGI 库文件,所以利用它可以解析用户输入的需求,并通过网络服务器产生最佳质量的成果。 程序员还可为拥有 Python 内置解释器的 Apache、Unix 和 Windows 网络服务器编译模块。基于 CGI 程序的功效,可以很方便地执行 Python 语句而不用单独装载。 数据库编程 Python 中有无数的扩充模块可以连接如 Orcle、Informix 、mySOL和PostgreSql等通用的数据库系统;还有称作 Gadfly 的工具可以独立Python 提供完全的SQL环境。Python 有强大的文本和数据处理能力,可以用它作为不同数据库间的连接,比起那些数据库附带的总结和汇报工具显得更有优势。同时,由于它支持不同系统,用同样的接口也可以连接任何数据库。可以用 Tk 在支持平台上建立前端,马上就可获得高速跨平台、独立数据库的查询工具。 其它 Python 应用范围广泛,几乎没有它不适配的语言;凭籍它的微小内核、丰富功能、多样数据,Python 提供了一个良好的程序构建基础。综合了C 和 C++二者的优点,只要采用合适的结构和方式,便可对 Python 程序进行无限的扩充。除了一大堆显着的优点,Python 也有缺点。 要列出 Python 的缺点确实不太容易。Python 在其扩充模块中提供了大部分的功能,并充分显示了对其增加功能有多容易,一旦用它还不能解决问题,那么也仅需要利用 C 或 C++ 语言重新编写一个扩充程序便可。 批评 Python 的人往往不是说Python 缺乏某种功能,而是对这种功能并不了解。通常还有一种抱怨说 Python 缺少规则表达式的支持-但实际上有两个模块可以用来处理规则表达式,其中之一还可以完全用来支持 Perl 语言的句式句法。对规则表达式的处理并没有编进该语言中,但并不等于它作不到。 针对 Perl、Rebol 和 Java 语句而言, Python 的优势在于它的内核很小。这减少了执行的时间,因为在运行时需要装载的代码较少,而且这个特点也使它有着更广的适应性。 一旦熟悉了 Python 语句的简明风格,它的强大优势顿时便会凸现出来。用它编就的程序历久不衰。 Python 的理想用户群 它适合不同类型的用户以解决不同类型的问题。大部分时候这些问题一般不为人所知,因为它们有着较高的保密性。也有大型公司用它进行商用开发,并展示开发所获的成果。 红帽 (Red Hat )曾用 Python 和 Tk 一起成功开发配置和管理操作系统的可视界面。整个系统可以全面控制 Linux 操作系统,并根据用户选择对配置文件作自动更新。 Infoseek 在其公用搜索引擎使用了Python。该公司还用 Python 对其软件进行定制,使最终用户能对该网站内容进行方便下栽。 美国航空航天局也在不少领域中用到 Python 程序语言,最出名的莫过于在任务控制中心将 Python 用于任务计划;对 Python 在其它方面的使用例如用其计算天体方位和设计卫星的路径等等都充分体现了 Python 的超强计算能力。 以在“星球大站”、“阿贝斯 (Abyss)”、 “星球之旅 (Star Trek)”、 “印地安那琼斯 (Indiana Jones)”超级大片中当纲特技和动画制作的工业光魔公司 (Instrial Light)也采用 Python 制作商业动画。 什么是Python? Python是一种即译式的,互动的,面向对象的编程语言,它包含了模组式的操作,异常处理,动态资料形态,十分高层次的动态资料结构,以及类别的使用。Python揉合了简单的语法和强大的功能。它的语法表达优美易读。它具有很多优秀的脚本语言的特点:解释的,面向对象的,内建的高级数据结构,支持模块和包,支持多种平台,可扩展。而且它还支持交互式方式运行,图形方式运行。它拥有众多的编程界面支持各种操作系统平台以及众多的各类函数库。利用C和C++可以对它进行扩充。个别的应用软件如果需要有一个可程序化界面也可以利用它来做为扩展语言用。最后,Python的可移植度非常高:它可以在许多的Unix类平台上运行,在Mac,MS-DOS,视窗Windows,Windows NT,OS/2,BeOS,以至RISCOS上都有相关的Python版本。 简单的说它具有以下一些特征: l 是一种解释性的,面向对象的,具有动态语义的程序设计语言。 l 适合快速开发。 l 能集成到其他流行的服务器,也自带服务器。 l 提供清晰的数据/逻辑/表示的分离。 l 带有可扩展的内置对象和强大的集成安全模块。 Python的历史 Python的创始人为Guido van Rossum。1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,做为ABC语言的一种继承。之所以选中Python(大蟒蛇的意思)作为程序的名字,是因为他是一个Monty 大蟒蛇飞行马戏团的爱好者。 ABC是由Guido参加设计的一种教学语言(没听说过)。就Guido本人看来,ABC这种语言非常优美和强大,是专门为非专业程序员设计的。但是ABC语言并没有成功,究其原因,Guido认为是非开放造成的。Guido决心在Python中避免这一错误(的确如此,Python与其它的语言如C,C++和Java结合的非常好)。同时,他还想实现在ABC中闪现过但未曾实现的东西。 就这样,Python在Guido手中诞生了(真要感谢他)。实际上,第一个实现是在Mac机上。可以说,Python是从ABC发展起来,主要受到了Mola-3(另一种相当优美且强大的语言,为小型团体所设计的)的影响。并且结合了Unix Shell和C的习惯。 Python可用在哪些地方? Python可以用在许多场合。当你需要大量的动态调整,要容易使用,功能强大并且富有弹性的情况,Python可以发挥很好的功效。 在处理文字方面,Python的核心功能(不需要任何扩充库的情况下)比别的编程语言更为易用而且速度相当。这使Python在需要处理字符串的工作(包括系统管理,CGI编程)上成为高效的语言。 当Python加上它的标准扩充库(如PIL,COM,Numeric,Oracledb,kjbuckets,tkinter,win32api,等等)或是特别扩充库(你自己写的,或是用SWING做的,或是利用ILU/COBRA/com的)后,它可以变成一个很好的“胶合语言”或者叫“指导语言”。就是指把不同的编程环境和互不相关的软件功能整合的工具。例如把Numeric和Oracledb透过Python结合起来你就可以替你的资料库数据做系统分析。Python的简单、易用以及方便而强大的c/c++扩展方面使它成为一种十分优秀的“胶合语言”。 许多开发人员也在写图形用户界面时广泛的采用了Python。如果在Windows下,如果想做一个图形界面程序,那么Python可以胜任。可以去wxPython/projects/swig/)。 有趣的语法 Guido认为Python的语法是非常优美的。其中一点就是,块语句的表示不是C语言常用的{}对,或其它符号对,而是采用缩近表示法!有趣吧。就这一点来说,Guido的解释是:首先,使用缩近表示法减少了视觉上的混乱,并且使程序变短,这样就减少了需要对基本代码单元注意的范围;其次,它减少了程序员的自由度,更有利于统一风格,使得阅读别人的程序更容易。感觉还是不错的,就C语言来说,在if语句后面大括号的写法就好几种,不同的人喜欢不同的样子,还不如统一起来,都不会看得别扭。 在每个类或函数的定义后面,第一行可以是说明语句,根本不需要注释符标记。对于后面跟块语句的语句,后面应跟上一个冒号。一行语句不能太长,因为没有行结束符,如果超长则要使用续行符(\\)。还有一些有趣的比如说,象下面的一个比较处理,用C语言为: if (2 用Python可以表示为 if (2 什么是Zope? Zope是一个开放源代码的Web应用服务器,采用Python语言开发,使用它您可以方便的构建内容管理、内部网、门户网站、和其他的定制应用。 l 高度面向对象的Web开发平台,采用Python语言开发。 l 可以运行在几乎所有流行的操作系统上,支持多语言。 l 能集成到其他流行的服务器,也自带服务器。 l 提供清晰的数据/逻辑/表示的分离 。 l 带有可扩展的内置对象和强大的集成安全模块。 什么是Plone? Pone是一个Zope上的一个用户友好、功能强大的开放源代码内容管理系统。Plone适合用作内部网/外部网的服务器、文档发布系统、门户服务器和异地协同群件工具,到目前,Plone其实已经发展成为了一个应用开发平台。 l 是一种功能强大的开放源码(Open Source)内容管理系统(CMS) 。 l 通过Web浏览器来访问、编辑内容和管理,易于更新内容 。 l 无需编程,即可创建新的内容类型 。 l 协同的编辑和发布机制 。

⑻ 求助python大神,工作实例pandas数据分析

你的意思是比较每台机的宽,不符合的挑出来? 那每台机的返回值是什么?
你需要些一个函数func func把行变量作为参数,能对每一行操作,然后dataframe.apply(func, axis=1)

⑼ python pandas怎么输出结果

本文是对pandas官方网站上《10 Minutes to pandas》的一个简单的翻译,原文在这里。这篇文章是对pandas的一个简单的介绍,详细的介绍请参考:Cookbook 。习惯上,我们会按下面格式引入所需要的包:

一、 创建对象
可以通过 Data Structure Intro Setion 来查看有关该节内容的详细信息。
1、可以通过传递一个list对象来创建一个Series,pandas会默认创建整型索引:

2、通过传递一个numpy array,时间索引以及列标签来创建一个DataFrame:

3、通过传递一个能够被转换成类似序列结构的字典对象来创建一个DataFrame:

4、查看不同列的数据类型:

5、如果你使用的是IPython,使用Tab自动补全功能会自动识别所有的属性以及自定义的列,下图中是所有能够被自动识别的属性的一个子集:

二、 查看数据
详情请参阅:Basics Section

1、 查看frame中头部和尾部的行:

2、 显示索引、列和底层的numpy数据:

3、 describe()函数对于数据的快速统计汇总:

4、 对数据的转置:

5、 按轴进行排序

6、 按值进行排序

三、 选择
虽然标准的Python/Numpy的选择和设置表达式都能够直接派上用场,但是作为工程使用的代码,我们推荐使用经过优化的pandas数据访问方式: .at, .iat, .loc, .iloc 和 .ix详情请参阅Indexing and Selecing Data 和 MultiIndex / Advanced Indexing。
l 获取
1、 选择一个单独的列,这将会返回一个Series,等同于df.A:

2、 通过[]进行选择,这将会对行进行切片

l 通过标签选择
1、 使用标签来获取一个交叉的区域

2、 通过标签来在多个轴上进行选择

3、 标签切片

4、 对于返回的对象进行维度缩减

5、 获取一个标量

6、 快速访问一个标量(与上一个方法等价)

l 通过位置选择
1、 通过传递数值进行位置选择(选择的是行)

2、 通过数值进行切片,与numpy/python中的情况类似

3、 通过指定一个位置的列表,与numpy/python中的情况类似

4、 对行进行切片

5、 对列进行切片

6、 获取特定的值

l 布尔索引
1、 使用一个单独列的值来选择数据:

2、 使用where操作来选择数据:

3、 使用isin()方法来过滤:

l 设置
1、 设置一个新的列:

2、 通过标签设置新的值:

3、 通过位置设置新的值:

4、 通过一个numpy数组设置一组新值:

上述操作结果如下:

5、 通过where操作来设置新的值:

四、 缺失值处理
在pandas中,使用np.nan来代替缺失值,这些值将默认不会包含在计算中,详情请参阅:Missing Data Section。
1、 reindex()方法可以对指定轴上的索引进行改变/增加/删除操作,这将返回原始数据的一个拷贝:、

2、 去掉包含缺失值的行:

3、 对缺失值进行填充:

4、 对数据进行布尔填充:

五、 相关操作
详情请参与 Basic Section On Binary Ops
统计(相关操作通常情况下不包括缺失值)
1、 执行描述性统计:

2、 在其他轴上进行相同的操作:

3、 对于拥有不同维度,需要对齐的对象进行操作。Pandas会自动的沿着指定的维度进行广播:

Apply
1、 对数据应用函数:

直方图
具体请参照:Histogramming and Discretization

字符串方法
Series对象在其str属性中配备了一组字符串处理方法,可以很容易的应用到数组中的每个元素,如下段代码所示。更多详情请参考:Vectorized String Methods.

六、 合并
Pandas提供了大量的方法能够轻松的对Series,DataFrame和Panel对象进行各种符合各种逻辑关系的合并操作。具体请参阅:Merging section
Concat

Join 类似于SQL类型的合并,具体请参阅:Database style joining

Append 将一行连接到一个DataFrame上,具体请参阅Appending:

七、 分组
对于”group by”操作,我们通常是指以下一个或多个操作步骤:
(Splitting)按照一些规则将数据分为不同的组;
(Applying)对于每组数据分别执行一个函数;
(Combining)将结果组合到一个数据结构中;
详情请参阅:Grouping section

1、 分组并对每个分组执行sum函数:

2、 通过多个列进行分组形成一个层次索引,然后执行函数:

八、 Reshaping
详情请参阅 Hierarchical Indexing 和 Reshaping。
Stack

数据透视表,详情请参阅:Pivot Tables.

可以从这个数据中轻松的生成数据透视表:

九、 时间序列
Pandas在对频率转换进行重新采样时拥有简单、强大且高效的功能(如将按秒采样的数据转换为按5分钟为单位进行采样的数据)。这种操作在金融领域非常常见。具体参考:Time Series section。

1、 时区表示:

2、 时区转换:

3、 时间跨度转换:

4、 时期和时间戳之间的转换使得可以使用一些方便的算术函数。

十、 Categorical
从0.15版本开始,pandas可以在DataFrame中支持Categorical类型的数据,详细 介绍参看:categorical introction和API documentation。

1、 将原始的grade转换为Categorical数据类型:

2、 将Categorical类型数据重命名为更有意义的名称:

3、 对类别进行重新排序,增加缺失的类别:

4、 排序是按照Categorical的顺序进行的而不是按照字典顺序进行:

5、 对Categorical列进行排序时存在空的类别:

十一、 画图
具体文档参看:Plotting docs

对于DataFrame来说,plot是一种将所有列及其标签进行绘制的简便方法:

十二、 导入和保存数据
CSV,参考:Writing to a csv file
1、 写入csv文件:

2、 从csv文件中读取:

HDF5,参考:HDFStores
1、 写入HDF5存储:

2、 从HDF5存储中读取:

Excel,参考:MS Excel
1、 写入excel文件:

2、 从excel文件中读取:

来自为知笔记(Wiz)

阅读全文

与python扩展库pandas的使用案例相关的资料

热点内容
南京中兴招收专科程序员吗 浏览:297
代理商php源码 浏览:983
苹果手机怎么解压软件app 浏览:650
游戏资源被编译 浏览:152
代码编译后黑屏 浏览:8
程序员情侣写真 浏览:505
python3孪生素数 浏览:36
计算杨辉三角Python 浏览:404
linux目录重命名 浏览:196
算法设计的最终形态是代码 浏览:262
程序员社团招新横幅 浏览:238
拖鞋解压视频大全 浏览:887
租服务器主机链接软件叫什么 浏览:856
交叉编译工具的linux版本号 浏览:156
python开发应用软件 浏览:32
hdl综合器与c编译器的区别 浏览:899
编译原理最左推导代码 浏览:702
加密三 浏览:131
通过编译链接后形成的可执行程序 浏览:680
怎么用matlab编程 浏览:782