#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常用的更多相关文章

  1. pandas常用函数之shift

    shift函数是对数据进行移动的操作,假如现在有一个DataFrame数据df,如下所示: index value1 A 0 B 1 C 2 D 3 那么如果执行以下代码: df.shift() 就会 ...

  2. pandas常用函数之diff

    diff函数是用来将数据进行某种移动之后与原数据进行比较得出的差异数据,举个例子,现在有一个DataFrame类型的数据df,如下: index value1 A 0 B 1 C 2 D 3 如果执行 ...

  3. pandas 常用函数整理

    pandas常用函数整理,作为个人笔记. 仅标记函数大概用途做索引用,具体使用方式请参照pandas官方技术文档. 约定 from pandas import Series, DataFrame im ...

  4. Pandas常用操作方法

    Pandas pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的. Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具. pandas提 ...

  5. Python数据分析与挖掘所需的Pandas常用知识

    Python数据分析与挖掘所需的Pandas常用知识 前言Pandas基于两种数据类型:series与dataframe.一个series是一个一维的数据类型,其中每一个元素都有一个标签.series ...

  6. NumPy和Pandas常用库

    NumPy和Pandas常用库 1.NumPy NumPy是高性能科学计算和数据分析的基础包.部分功能如下: ndarray, 具有矢量算术运算和复杂广播能力的快速且节省空间的多维数组. 用于对整组数 ...

  7. Pandas常用数据结构

    Pandas 概述 Pandas(Python Data Analysis Library)是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的.Pandas 纳入了大量库和一些标准的数 ...

  8. pandas常用小trick(持续更新)

    记录一下pandas常用的小技巧,时间长了干别的去了会忘记,记录一下: 1. 在处理数据过程中涉及到label和null的处理方法 # 方法一 df['height'][df.height < ...

  9. 【转载】pandas常用函数

    原文链接:https://www.cnblogs.com/rexyan/p/7975707.html 一.import语句 import pandas as pd import numpy as np ...

  10. pandas 常用统计方法

    统计方法 pandas 对象有一些统计方法.它们大部分都属于约简和汇总统计,用于从 Series 中提取单个值,或从 DataFrame 的行或列中提取一个 Series. 比如 DataFrame. ...

随机推荐

  1. crontab修改默认编辑器

    crontab默认编辑器为nano 修改crontab默认编辑器为vi或者其他的编辑器 可以用命令select-editor修改 改为3或者4 再用crontab -e 就是vim打开了

  2. C++标准命名空间std

    输入输出要用到这个. 标准C++库的所有的标识符都是在一个名为std的命名空间中定义的,或者说标准头文件(如iostream)中函数.类.对象和类模板是在命名空间 std中定义的.std是standa ...

  3. 复习js

    js写在页面最后如果放在前面,需要加window.onload=function(){)常见的两种输出方式 在网页中弹出显示框,显示信息 alert() 在控制台输出消息,一般用来调试程序consol ...

  4. Java动态代理和静态代理区别

    静态代理 package staticproxy; /** * 接口 * @author newtouch * */ public interface IHello { public void say ...

  5. Eclipse------maven使用Maven build编译web项目显示" javax.servlet.http 不存在"

    缺少javax.servlet包 解决方法: 引入下面代码即可 <project> <dependencies> <dependency> <groupId& ...

  6. SELECT中常用的子查询操作

    MySQL中的子查询 是在MySQL中经常使用到的一个操作,不仅仅是用在DQL语句中,在DDL语句.DML语句中也都会常用到子查询. 子查询的定义: 子查询是将一个查询语句嵌套在另一个查询语句中: 在 ...

  7. xml文件的序列化示例

    1.创建activity_main.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/andr ...

  8. 使用 Splash

    Splash 简介与安装 Splash Lua 脚本 Splash 对象属性 Splash 对象方法 Splash API 调用 Splash 负载均衡

  9. 天猫浏览型应用的CDN静态化架构演变(转)

    转自:http://wbj0110.iteye.com/blog/2036613 在天猫双11活动中,商品详情.店铺等浏览型系统,通常会承受超出日常数倍甚至数十倍的流量冲击.随着历年来双11流量的大幅 ...

  10. linux系统抓包命令

    IP地址抓包:tcpdump -i any host 1.1.1.2 -n 端口抓包: tcpdump -i any port 6789 -n wireshak工具抓包:tcp.port == 678 ...