pandas常用
#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里面nodukey R里面的which(!duplicated(df[])类似
df.drop_duplicated()
#获取最大值 最小值的位置 有点类似矩阵里面的方法
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功能是一样的 这里不多说
#求哑变量
dumiper=pd.get_dummies(df['key'])
df['key'].join(dumpier)
#透视表 和交叉表 跟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['product_desc'] = misc['product_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
#这三个函数是pandas里面数据变换的核心 避免了for循环,跟R里面的apply函数类似
#主要用法不清楚可以问我
pd.concat([df1,df2],axis=1) 横向合并 ,没有axis=1 则纵向合并
pandas常用的更多相关文章
- pandas常用函数之shift
shift函数是对数据进行移动的操作,假如现在有一个DataFrame数据df,如下所示: index value1 A 0 B 1 C 2 D 3 那么如果执行以下代码: df.shift() 就会 ...
- pandas常用函数之diff
diff函数是用来将数据进行某种移动之后与原数据进行比较得出的差异数据,举个例子,现在有一个DataFrame类型的数据df,如下: index value1 A 0 B 1 C 2 D 3 如果执行 ...
- pandas 常用函数整理
pandas常用函数整理,作为个人笔记. 仅标记函数大概用途做索引用,具体使用方式请参照pandas官方技术文档. 约定 from pandas import Series, DataFrame im ...
- Pandas常用操作方法
Pandas pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的. Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具. pandas提 ...
- Python数据分析与挖掘所需的Pandas常用知识
Python数据分析与挖掘所需的Pandas常用知识 前言Pandas基于两种数据类型:series与dataframe.一个series是一个一维的数据类型,其中每一个元素都有一个标签.series ...
- NumPy和Pandas常用库
NumPy和Pandas常用库 1.NumPy NumPy是高性能科学计算和数据分析的基础包.部分功能如下: ndarray, 具有矢量算术运算和复杂广播能力的快速且节省空间的多维数组. 用于对整组数 ...
- Pandas常用数据结构
Pandas 概述 Pandas(Python Data Analysis Library)是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的.Pandas 纳入了大量库和一些标准的数 ...
- pandas常用小trick(持续更新)
记录一下pandas常用的小技巧,时间长了干别的去了会忘记,记录一下: 1. 在处理数据过程中涉及到label和null的处理方法 # 方法一 df['height'][df.height < ...
- 【转载】pandas常用函数
原文链接:https://www.cnblogs.com/rexyan/p/7975707.html 一.import语句 import pandas as pd import numpy as np ...
- pandas 常用统计方法
统计方法 pandas 对象有一些统计方法.它们大部分都属于约简和汇总统计,用于从 Series 中提取单个值,或从 DataFrame 的行或列中提取一个 Series. 比如 DataFrame. ...
随机推荐
- UnitOfWork 更新实体出错解决办法
用UnitOfWork进行实体更新的时候,再查询实体一次,再去更新的时候会报如下错误: Attaching an entity of type 'TinyFrame.Data.DomainModel. ...
- 分享一个有趣的代码,调用电脑中的api语音
在文本文件中输入如下代码: set objTTS = CreateObject("sapi.spvoice") objTTS.speak("为啥我对象这么闹呢?" ...
- MyBatis 与 Spring 是如何结合在一起工作的——mybatis-spring(version:1.2.2)
在MyBatis-Spring的项目中,我们一般会为MyBatis配置两个配置文件 beans-mybatis.xml 和 mybatis-config.xml.其中 beans-mybatis.xm ...
- Dubbo -- 系统学习 笔记 -- 依赖
Dubbo -- 系统学习 笔记 -- 目录 依赖 必需依赖 缺省依赖 可选依赖 依赖 必需依赖 JDK1.5+ 理论上Dubbo可以只依赖JDK,不依赖于任何三方库运行,只需配置使用JDK相关实现策 ...
- web页面 验证码 生成
web页面 验证码 生成 kaptcha 是一个非常实用的验证码生成工具.有了它,你可以生成各种样式的验证码,因为它是可配置的.kaptcha工作的原理是调用 com.google.code.kapt ...
- scala spray 概念性内容的总结
spray 是基于 akka 的轻量级 scala 库,可用于编写 REST API 服务.了解 spray 的 DSL 后可以在很短的时间内写出一个 REST API 服务,它的部署并不需要 tom ...
- switch和continue的关系
突然想到 我们用 switch都是用 break return等关键字来配合,有没有一种情况下是用continue呢?而且如果真的出现了continue,结果是什么样的呢?
- vmware 安装 Mac OS X 10.9 Mavericks
This guide shows how to install fresh OS X 10.9 Mavericks on VMware workstation with Windows 7 or Wi ...
- iOS开发--tarBarItem右上方显示badgeValue
直接设置tabBarItem.badgeValue没有效果,找原因半天发现ViewController被NavigationViewController包着 需这样设置才行: self.navigat ...
- zabbix监控第一台服务器
客户机的IP是192.168.0.80,主机名是wls12c 1. 安装客户端, 1.1 新建zabbix的用户 groupadd zabbix useradd -g zabbix zabbix 1. ...