摘要

    一、创建对象     

  二、查看数据

  三、选择和设置

  四、缺失值处理

  五、相关操作

  六、聚合

  七、重排(Reshaping)
  八、时间序列
  九、Categorical类型

   十、画图
     十一、导入和保存数据

内容

# coding=utf-8
import pandas as pd
import numpy as np
### 一、创建对象
## 1.可以传递一个list对象创建一个Series,Pandas会默认创建整型索引
s = pd.Series([1, 3, 5, np.nan, 6, 8])
# print s ## 2.通过传递一个numpy array,时间索引以及列标签来创建一个DataFrame
dates = pd.date_range('20130101', periods=6)
# print dates
df = pd.DataFrame(np.random.randn(6, 4), index=dates, columns=list("ABCD"))
# print df
## 3.通过传递一个能够被转换成类似序列结构的字典对象来创建一个DataFrame
df2 = pd.DataFrame({"A": 1, "B": pd.Timestamp('20130102'), "C": pd.Series(1, index=list(range(4)), dtype="float32"),
"D": np.array([3] * 4, dtype="int32"), "E": pd.Categorical(["test", "train", "test", "train"]),
"F": "foo"})
# print df2 ### 二、查看数据
## 1.查看frame中头部和尾部的行,默认5行
# print df.head()
# print df.tail(3) ## 2.显示索引,列和底层的numpy数据
# print df.index
# print df.columns
# print df.values ## 3.describe()函数对于数据的款素统计汇总,python中方法不能省略圆括号
# print df.describe() ## 4.对数据的转置
# print df.T ## 5.按轴(列)进行排序
# print df.sort_index(axis=1,ascending=False) ## 6.按值进行排序,建议使用sort_values(by=)
# print df.sort(columns="B")
# print df.sort_values(by="B") ### 三、选择和设置
## 获取1.选择一个单独的列,这将会返回一个Series,等同于df.A
# print df["A"] ## 获取2.通过[]进行选择,这将会对行进行切片
# print df[0:3][1:2]
# print df[0:3] ##上面的方法是通过下标[]进行访问,下面可以.loc[]来对指定便签进行选择
##通过标签选择:1.使用便签来获取一个交叉的区域
# print df.loc[ dates[0] ] ##通过标签选择:2.通过标签来在多个轴上进行选择
# print df.loc[ :,["A","B"] ] ##通过标签选择:3.标签切片
# print df.loc[ "20130102":"20130104",["A","B"] ] ##通过标签选择:4.对于返回的对象进行维度缩减
# print df.loc["20130102",["A","B"]] ##通过标签选择:5.获取一个标量
# print df.loc[ dates[0],"A" ] ##通过标签选择:6.快速访问一个标量(at方法)
# print df.at[ dates[0],"A" ] ##通过位置选择:1.通过传递数值进行位置选择(选择的是行)
# print df.iloc[3] ##通过位置选择:2.通过数值进切片
# print df.iloc[3:5,0:2] ##通过位置选择:3.通过指定一个位置的列表
# print df.iloc[ [1,2,3],[0,2] ] ##通过位置选择:4.对行进行切片
# print df.iloc[1:3,:] ##通过位置选择:5.对列进行切片
# print df.iloc[:,1:3] ##通过位置选择:6.获取特定的值
# print df.iloc[1,1]
# print df.iat[1,1] ##可以使用逻辑表达式来选择指定的数据框
##布尔索引:1.使用一个单独列的值来选择数据
# print df[df.A > 0] ##布尔索引:2.使用where操作来选择数据
# print df[ df > 0] ##布尔索引:3.使用isin()方法来过滤
# print df2[df2["E"].isin( ["test"] )] ##设置:通过一个numpy数组设置一组新值
# df.loc[ :,"E" ] = np.array( [5]*len(df) )
# print df ## reindex对索引进行改变/新增/删除(未赋值就是pd.nan)
df1 = df.reindex(index=dates[0:4], columns=list(df.columns) + ["E"])
# print df1 ### 四、缺失值处理(pandas使用np.nan代替缺失值,默认不会计算)
## 1.去掉包含缺失值的行
# print df1.dropna(how="any") ## 2.对缺失值进行填充
# print df1.fillna(value=5) ## 3.判断缺失值
# print pd.isnull() ## 五、相关操作
##apply(对数据应用函数)
# print df.apply(np.cumsum)##累积和
# print df.apply(lambda x:x.max - x.min) ##x代表当前列的一个标量 ##值计数器
# print s.value_counts() ##六、聚合(aggregate)
## 1.contat(拼接,默认是全外联)
# piece = [ df[:2],df[2:4],df[4:] ]
# print pd.concat(piece) ##默认axis=0是上下连接
# piece = [ df.loc[ :,["A","B"] ],df.loc[ :,["C","D"] ] ]
# print pd.concat(piece,axis=1) ##1是左右连接 ## 2.联表操作(join,merge)
# left = pd.DataFrame( {
# "key":["foo","foo1"],"lval":[1,2]
# } )
# right = pd.DataFrame( {
# "key":["foo","foo2"],"rval":[1,2]
# } )
# print pd.merge(left,right,how="inner",left_on=left.key,right_on=right.key) ##内联
# print pd.merge(left,right,how="left",left_on=left.key,right_on=right.key) ##左联
# print pd.merge(left,right,how="right",left_on=left.key,right_on=right.key) ##右联
# print pd.merge(left,right,how="outer",left_on=left.key,right_on=right.key) ##全外联
# print left.set_index("key").join([right.set_index("key")], how="outer") ##join根据索引连接 ## 3.append(追加)
# print df.append(other=[df,df]) ##只能上下联接 ## 4.分组
# print df.groupby("A").sum()
# print df.groupbyoupby( ["A","B"] ).sum() ##层次索引
# print df.groupby(['A', 'B'])['C'].mean()
# print df.groupby(df["A"]) ### 七、Reshaping
## 1.Stack
# tuples = list(zip(*[['bar', 'bar', 'baz', 'baz',
# 'foo', 'foo', 'qux', 'qux'],
# ['one', 'two', 'one', 'two',
# 'one', 'two', 'one', 'two']]))
# index = pd.MultiIndex.from_tuples(tuples, names=['first', 'second'])
# df = pd.DataFrame(np.random.randn(8, 2), index=index, columns=['A', 'B'])
# df2 = df[:4]
# print df2
#The stack function “compresses” a level in the DataFrame’s columns to produce either:
# A Series, in the case of a simple column Index
# A DataFrame, in the case of a MultiIndex in the columns
# stacked = df2.stack()
# print stacked
# print stacked.unstack()
# print stacked.unstack(1)
# print stacked.unstack(0) ## 2.数据透视表
# print pd.pivot_table(df,values="D",index=["A","B"],columns="C") ### 八、时间序列
# rng = pd.date_range("1/1/2012", periods=100, freq="S")
# ts = pd.Series(np.random.randn(0, 500, len(rng)), index=rng)
# print ts.resample("5Min",how="sum") ### 九、Categorical类型
详见此处
### 十、画图
详见此处 ### 十一、导入和保存数据
df.to_csv("data.csv")
csv = df.read_csv("data.csv") 官网文档此处

10 Minutes to pandas的更多相关文章

  1. 《10 minutes to pandas》(转)

    原文出处:http://pandas.pydata.org/pandas-docs/stable/10min.html 10 Minutes to pandas This is a short int ...

  2. 10 Minutes to pandas中文版

    本文是对pandas官方网站上<10 Minutes to pandas>的一个简单的翻译,原文在这里.这篇文章是对pandas的一个简单的介绍,详细的介绍请参考:Cookbook .习惯 ...

  3. Cookbook:pandas的学习之路——10 Minutes to pandas

    按照pandas官网上10 Minutes to pandas的快速练习: 一 .对象创建: 导入练习所需要的工具包: 通过列表中的值创建序列Series,pandas在创建序列的同时会默认为列表中值 ...

  4. 10分钟学习pandas

    10 Minutes to pandas This is a short introduction to pandas, geared mainly for new users. You can se ...

  5. 10分钟了解 pandas - pandas官方文档译文 [原创]

    10 Minutes to pandas 英文原文:https://pandas.pydata.org/pandas-docs/stable/10min.html 版本:pandas 0.23.4 采 ...

  6. python 10分钟入门pandas

    本文是对pandas官方网站上<10 Minutes to pandas>的一个简单的翻译,原文在这里.这篇文章是对pandas的一个简单的介绍,详细的介绍请参考:Cookbook .习惯 ...

  7. The replication agent has not logged a progress message in 10 minutes.

    打开Replication Monitor,在Subscription Watch List Tab中,发现有大量的status= “Performance critical” 的黄色Warning, ...

  8. 十分钟入门less(翻译自:Learn lESS in 10 Minutes(or less))

    十分钟入门less(翻译自:Learn lESS in 10 Minutes(or less)) 注:本文为翻译文章,因翻译水平有限,难免有缺漏不足之处,可查看原文. 我们知道写css代码是非常枯燥的 ...

  9. jenkins git can't work ERROR: Timeout after 10 minutes ERROR: Error fetching remote repo 'origin'

    Started by user Allen Running as Allen Building remotely on MISTestSrv2 (MIS) in workspace C:\jenkin ...

随机推荐

  1. StringMVC 中如何做数据校验

    步骤一:引入四个jar包 步骤二:注册类型转换器 <context:component-scan base-package="cn.happy.controller"> ...

  2. ASP.NET是如何在IIS下工作的

    ASP.NET与IIS是紧密联系的,由于IIS6.0与IIS7.0的工作方式的不同,导致ASP.NET的工作原理也发生了相应的变化. IIS6(IIS7的经典模式)与IIS7的集成模式的不同 IIS6 ...

  3. Android 获取meta-data中的数据

    在 Android 的 Mainfest 清单文件中,Application,Activity,Recriver,Service 的节点中都有这个的存在.很多时候我们可以通过 meta-data 来配 ...

  4. HTTP常用状态码分析

    不管是面试还是工作中,经常会碰到需要通过HTTP状态码去判断问题的情况,比如对于后台RD,给到前端FE的一个接口,出现502或者504 error错误,FE就会说接口存在问题,如果没有知识储备,那就只 ...

  5. 使用技术手段限制DBA的危险操作—Oracle Database Vault

    概述 众所周知,在业务高峰期,某些针对Oracle数据库的操作具有很高的风险,比如修改表结构.修改实例参数等等,如果没有充分评估和了解这些操作所带来的影响,这些操作很可能会导致故障,轻则导致应用错误, ...

  6. 用神奇的currentColor制作简洁的颜色动画效果

    先上一个兼容性总结图:老版本ie可以直接用复杂方法了,套用某表情包的话:  2016年了,做前端你还考虑兼容IE6?你这简直是自暴自弃! 好了,知道了兼容性,我们可以放心的使用了. 在CSS3中扩展了 ...

  7. MongoDB系列(一):简介及安装

    什么是MongoDB MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统. 在高负载的情况下,添加更多的节点,可以保证服务器性能. MongoDB 旨在为应用提供可扩展的高 ...

  8. .NET 基础 一步步 一幕幕[面向对象之对象和类]

    对象和类 本篇正式进入面向对象的知识点简述: 何为对象,佛曰:一花一世界,一木一浮生,一草一天堂,一叶一如来,一砂一极乐,一方一净土,一笑一尘缘,一念一清静.可见"万物皆对象". ...

  9. 小程序用户反馈 - HotApp小程序统计仿微信聊天用户反馈组件,开源

    用户反馈是小程序开发必要的一个功能,但是和自己核心业务没关系,主要是产品运营方便收集用户的对产品的反馈.HotApp推出了用户反馈的组件,方便大家直接集成使用 源码下载地址: https://gith ...

  10. 「译」JUnit 5 系列:环境搭建

    原文地址:http://blog.codefx.org/libraries/junit-5-setup/ 原文日期:15, Feb, 2016 译文首发:Linesh 的博客:环境搭建 我的 Gith ...