from pandas import Series, DataFrame, Index
import numpy as np
from numpy import nan as NA obj = Series(range(3), index=['a', 'b', 'c'])
print(obj)
index = obj.index
print(index)
print(index[1:])
# index[1] = 'd' index对象时不可以被修改的 为了安全和共享 index = Index(np.arange(3))
obj2 = Series([1.5, -2.6, 0], index=index)
print(obj2.index is index)
# 嵌套字典(字典的字典)
pop = {
'nevada': {
2001: 2.4,
2002: 2.9
},
'ohio': {
2000: 1.5,
2001: 1.7,
2002: 3.6
}
}
frame3 = DataFrame(pop)
frame3.index.name = 'year'
frame3.columns.name = 'state'
print(frame3)
print('ohio' in frame3.columns)
print(2003 in frame3.index) # index有很多的方法和属性(有时间呢,可以摸索一下) # reindex创建适应新索引的新对象(这里我不是很懂)
obj = Series([2.3, 4.5, -23.3, 4.3], index=['d', 'b', 'a', 'c'])
print(obj)
obj2 = obj.reindex(['a', 'b', 'c', 'd', 'e'])
print(obj2) # 索引和值一一对应,根据新索引进行重排
obj2 = obj.reindex(['a', 'b', 'c', 'd', 'e'], fill_value=0)
print(obj2) # 索引不存在,可以引入缺失值 obj3 = Series(['blue', 'purple', 'yellow'], index=[0, 2, 4])
print(obj3)
# obj3 = obj3.reindex(range(6), method='ffill') # 或者pad
# print(obj3) # 向前值填充
obj3 = obj3.reindex(range(6), method='bfill') # 或者pad
print(obj3) # 向后值填充 # 成员资格方法
data = DataFrame({'qu1': [1, 3, 4, 3, 4], 'qu2': [2, 3, 1, 2, 3], 'qu3': [1, 5, 2, 4, 4]})
print(data) # 处理缺失数据
string = Series(['aar', 'art', np.nan, 'avo'])
print(string)
print(string.isnull()) # 过滤掉缺失数据
data = Series([1, NA, 3.5, NA, 7])
print(data.dropna()) # 过滤掉NA
print(data.notnull()) data = DataFrame([[1, 6.5, 3], [1, NA, NA], [NA, NA, NA], [NA, 6.5, 3]])
print(data)
print(data.dropna()) # 丢弃掉含有NA的所有行
print(data.dropna(how='all')) # 丢我掉全为NA的行
data[4] = NA
print(data)
print(data.dropna(axis=1, how='all')) # 丢弃掉全为NA的列 df = DataFrame(np.random.randn(7, 3))
df.ix[:4, 1] = NA # 要钱也要后
df.ix[:2, 2] = NA
print(df)
print(df.dropna(thresh=3)) # thresh对应的值是观测的数据个数 # 填充缺失数据
print(df.fillna(0))
print(df.fillna({1: 0.4})) # 指定的列进行填充
_ = df.fillna(0, inplace=True) # 本地填充修改, 不产生新对象
print(df) df = DataFrame(np.random.randn(6, 3))
df.ix[2:, 1] = NA # 要钱也要后
df.ix[4:, 2] = NA
print(df)
print(df.fillna(method='ffill')) # 向前填充
print(df.fillna(method='ffill', limit=2)) # 填充限制 data = Series([1, NA, 3.5, NA, 7])
print(data)
print(data.fillna(data.mean())) # 用平均值填充na值

pandas 入门(2)的更多相关文章

  1. 利用Python进行数据分析——pandas入门

    利用Python进行数据分析--pandas入门 基于NumPy建立的 from pandas importSeries,DataFrame,import pandas as pd 一.两种数据结构 ...

  2. Python 数据处理库 pandas 入门教程

    Python 数据处理库 pandas 入门教程2018/04/17 · 工具与框架 · Pandas, Python 原文出处: 强波的技术博客 pandas是一个Python语言的软件包,在我们使 ...

  3. 利用python进行数据分析之pandas入门

    转自https://zhuanlan.zhihu.com/p/26100976 目录: 5.1 pandas 的数据结构介绍5.1.1 Series5.1.2 DataFrame5.1.3索引对象5. ...

  4. 利用python进行数据分析--pandas入门2

    随书练习,第五章  pandas入门2 # coding: utf-8 # In[1]: from pandas import Series,DataFrame import pandas as pd ...

  5. 利用python进行数据分析--pandas入门1

    随书练习,第五章  pandas入门1 # coding: utf-8 # In[1]: from pandas import Series, DataFrame # In[2]: import pa ...

  6. pandas 入门(3)

    from pandas import Series, DataFrame, Index import numpy as np # 层次化索引 对数据重塑和分组操作很有用 data = Series(n ...

  7. < 利用Python进行数据分析 - 第2版 > 第五章 pandas入门 读书笔记

    <利用Python进行数据分析·第2版>第五章 pandas入门--基础对象.操作.规则 python引用.浅拷贝.深拷贝 / 视图.副本 视图=引用 副本=浅拷贝/深拷贝 浅拷贝/深拷贝 ...

  8. 程序员用于机器学习编程的Python 数据处理库 pandas 入门教程

    入门介绍 pandas适合于许多不同类型的数据,包括: · 具有异构类型列的表格数据,例如SQL表格或Excel数据 · 有序和无序(不一定是固定频率)时间序列数据. · 具有行列标签的任意矩阵数据( ...

  9. 《利用python进行数据分析》读书笔记--第五章 pandas入门

    http://www.cnblogs.com/batteryhp/p/5006274.html pandas是本书后续内容的首选库.pandas可以满足以下需求: 具备按轴自动或显式数据对齐功能的数据 ...

  10. pandas入门

    [原]十分钟搞定pandas   本文是对pandas官方网站上<10 Minutes to pandas>的一个简单的翻译,原文在这里.这篇文章是对pandas的一个简单的介绍,详细的介 ...

随机推荐

  1. 【转】UBOOT——启动内核

    转自:https://www.cnblogs.com/biaohc/p/6403863.html 1:什么是UBOOT,为什么要有UBOOT? UBOOT的主要作用是用来启动linux内核,因为CPU ...

  2. 机器学习分类算法之K近邻(K-Nearest Neighbor)

    一.概念 KNN主要用来解决分类问题,是监督分类算法,它通过判断最近K个点的类别来决定自身类别,所以K值对结果影响很大,虽然它实现比较简单,但在目标数据集比例分配不平衡时,会造成结果的不准确.而且KN ...

  3. Educational Codeforces Round 55 (Rated for Div. 2) D. Maximum Diameter Graph (构造图)

    D. Maximum Diameter Graph time limit per test2 seconds memory limit per test256 megabytes inputstand ...

  4. 【学习】017 Mybatis框架

    一.目标 Mybatis介绍 Mybatis增删改查 SQL注入问题介绍 Mybatis xml与注解实现 Mybatis分页 二.Mybatis快速入门 2.1 Mybatis介绍 MyBatis是 ...

  5. 1--面试总结-js深入理解,对象,原型链,构造函数,执行上下文堆栈,执行上下文,变量对象,活动对象,作用域链,闭包,This

    参考一手资料:http://dmitrysoshnikov.com/ecmascript/javascript-the-core/中文翻译版本:https://zhuanlan.zhihu.com/p ...

  6. 常见 linux 命令

    1.find find . //列出当前目录及子目录下的所有文件和文件夹 find /home -name "*.txt" //在/home目录下查找以.txt结尾的文件名或路径 ...

  7. linux局域网通过映射(双网卡)访问外网

    图示说明: 1.IP规划设置 主机名 ip地址 ip地址(第二个网卡配置的地址) 地址类别 oldboy01 192.168.10.20 空 仅可访问内网主机 oldboy02 192.168.10. ...

  8. tomcat 启动一傘而过问题

    tomcat 启动一傘而过问题 D:\apache-tomcat-7.0.75\bin startup.bat打开记事本打开 第一行:设置启动环境变量JAVA_HOME,CATALINA_HOME S ...

  9. CentOS7下修改默认网卡名为eth0的两种方法

    前言 大家都知道CentOS7默认的网卡名称是和设备名称是随机的,如果要修改网卡名称以 eth 开头,有两种方式,如下: 第一种方式 这种方式适合在安装操作系统的时候进行设置, 点击 Tab,打开ke ...

  10. 【JavaMail】JavaMail整合RabbitMq发送邮件案例

    前言 Linux安装RabbitMQ:https://www.cnblogs.com/jxd283465/p/11975094.html SpringBoot整合RabbitMQ:https://ww ...