Pandas介绍(panel + data + analysis)

为什么使用Pandas
        便捷的数据处理能力
        读取文件方便
        封装了Matplotlib、Numpy的画图和计算

Pandas的核心数据结构(DataFrame+Panel+Series)

3大核心结构:

DataFrame
            Panel
            Series

1、DataFrame

DataFrame
    结构:既有行索引,又有列索引的二维数组
    属性:
        shape
        index
        columns
        values
        T
    方法:
        head()
        tail()
    3 DataFrame索引的设置
        1)修改行列索引值
        2)重设索引
        3)设置新索引

简单demo:

import numpy as np
import pandas as pd def demo():
data = np.random.normal(0, 1, (10, 5))
print(data)
# 添加行索引
stock = [
"股票{}".format(i) for i in range(10)
]
pd.DataFrame(data, index=stock)
# 添加列索引
date = pd.date_range(start="20180101", periods=5, freq="B") if __name__ == '__main__':
demo()

1、结构:

2、属性

shape +  index  +  columns  + values  +      T

data = np.random.normal(0, 1, (10, 5))

3、方法

head()   : 默认返回数据的前5行,head(3),返回前3行

tail() :默认返回数据的后5行,tail(3),返回后3行

4、DataFrame索引的设置

1)修改行列索引值: 只能整体修改,不能单独修改索引
       2)重设索引
       3)设置新索引

import numpy as np
import pandas as pd def demo():
data = np.random.normal(0, 1, (10, 5))
print(data)
# 添加行索引
stock = [
"股票{}".format(i) for i in range(10)
]
pd.DataFrame(data, index=stock) # 1、添加列索引
date = pd.date_range(start="20180101", periods=5, freq="B") # 修改行列索引值:整体修改,不能单独修改某一个
# 【错误】 data.index[2] = "股票88" --》 不能单独修改索引
stock_ = ["股票_{}".format(i) for i in range(10)]
data.index = stock_ # 2、重设索引
data.reset_index(drop=False) # False: 不删除原索引, True删除原索引h, 默认False # 3、设置某列的新索引,创建新的dataframe
df = pd.DataFrame({'month': [1, 4, 7, 10],
'year': [2012, 2014, 2013, 2014],
'sale': [55, 40, 84, 31]})
# 以月份设置新的索引
df.set_index("month", drop=True) # 设置多个索引,以年和月份(具有多索引的DataFrame,可用于三维数组)
new_df = df.set_index(["year", "month"]) if __name__ == '__main__':
demo()

MultiIndex与Panel

1、MultiIndex

import pandas as pd

def demo():
df = pd.DataFrame({'month': [1, 4, 7, 10],
'year': [2012, 2014, 2013, 2014],
'sale': [55, 40, 84, 31]})
new_df = df.set_index(["year", "month"]) print(new_df.index) # 索引列表
print(new_df.index.names) # 索引名称 if __name__ == '__main__':
demo()

2、Panel

panel我们通常看做pandas的容器,没办法直接看3维数据,只能从某一个维度出发看另外2个二维的数据

Series

数据挖掘---Pandas的学习的更多相关文章

  1. pandas的学习总结

    pandas的学习总结 作者:csj更新时间:2017.12.31 email:59888745@qq.com 说明:因内容较多,会不断更新 xxx学习总结: 回主目录:2017 年学习记录和总结 1 ...

  2. Hadoop里的数据挖掘应用-Mahout——学习笔记<三>

    之前有幸在MOOC学院抽中小象学院hadoop体验课. 这是小象学院hadoop2.X的笔记 由于平时对数据挖掘做的比较多,所以优先看Mahout方向视频. Mahout有很好的扩展性与容错性(基于H ...

  3. 机器学习如何选择模型 & 机器学习与数据挖掘区别 & 深度学习科普

    今天看到这篇文章里面提到如何选择模型,觉得非常好,单独写在这里. 更多的机器学习实战可以看这篇文章:http://www.cnblogs.com/charlesblc/p/6159187.html 另 ...

  4. pandas库学习笔记(二)DataFrame入门学习

    Pandas基本介绍——DataFrame入门学习 前篇文章中,小生初步介绍pandas库中的Series结构的创建与运算,今天小生继续“死磕自己”为大家介绍pandas库的另一种最为常见的数据结构D ...

  5. Pandas基础学习与Spark Python初探

    摘要:pandas是一个强大的Python数据分析工具包,pandas的两个主要数据结构Series(一维)和DataFrame(二维)处理了金融,统计,社会中的绝大多数典型用例科学,以及许多工程领域 ...

  6. 初步了解pandas(学习笔记)

    1 pandas简介 pandas 是一种列存数据分析 API.它是用于处理和分析输入数据的强大工具,很多机器学习框架都支持将 pandas 数据结构作为输入. 虽然全方位介绍 pandas API ...

  7. pandas时间序列学习笔记

    目录 创建一个时间序列 pd.date_range() info() asfred() shifted(),滞后函数 diff()求差分 加减乘除 DataFrame.reindex() 通过data ...

  8. pandas包学习笔记

    目录 zip Importing & exporting data Plotting with pandas Visual exploratory data analysis 折线图 散点图 ...

  9. pandas库学习笔记(一)Series入门学习

    Pandas基本介绍: pandas is an open source, BSD-licensed (permissive free software licenses) library provi ...

随机推荐

  1. python 加密算法及其相关模块的学习(hashlib,random,string,math)

    加密算法介绍 一,HASH Hash,一般翻译做“散列”,也有直接音译为”哈希”的,就是把任意长度的输入(又叫做预映射,pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值.这种 ...

  2. MySQL中字段字符集不同导致索引不能命中

    今天写了一个sql,其中涉及的表中的数据量都差不多为50w左右,查询发现用了8s.这个只是测试服上数据,放到正式服上,肯定一运行就挂了. SELECT Orders. NO, GuidNo, Orde ...

  3. 关于 Uboot 中有趣的 0xdeadbeef 填充

    在 Uboot 的 Start.S 中存在以下源码: .globl _start _start: b start_code ldr pc, _undefined_instruction ldr pc, ...

  4. js模块化编程之彻底弄懂CommonJS和AMD/CMD!

    先回答我:为什么模块很重要? 答:因为有了模块,我们就可以更方便地使用别人的代码,想要什么功能,就加载什么模块.但是,这样做有一个前提,那就是大家必须以同样的方式编写模块,否则你有你的写法,我有我的写 ...

  5. html5入门:教你用canvas写一个时钟

    今天的时间比较充裕,心血来潮,为大家分享一个html5的小例子,希望对刚学html5或者是没学html5正准备学的“童鞋们”展示一个小案例,希望对你们的学习有帮助!高手嘛!请跳过吧! 好了,闲话少数, ...

  6. 一个Fragment的实例

    @Override public void onActivityCreated(Bundle savedInstanceState) { // TODO Auto-generated method s ...

  7. EF to Sqlite

    测试下来,使用到下面的版本: EF6.1 System.Data.SQLite.EF6.1.0.93.0 System.Data.SQLite.Core.1.0.93.0  注意事项: 设置Autoi ...

  8. win10下安装PHP_CodeSniffer 检查编码规范

    PHP CodeSniffer是PEAR中的一个用PHP5写的一个PHP的代码风格检测器,它根据预先设定好的PHP编码风格和规则,去检查应用中的代码风格情况是否有违反一组预先设置好的编码标准,内置了Z ...

  9. 我为什么推荐Prettier来统一代码风格

    译者按: 关于代码风格,不同的人有不同的偏好,其实并没有什么绝对的对错.但是,有2条原则应该是对的: 少数服从多数:用工具统一风格. 原文: Why robots should format our ...

  10. js 位运算符

    MDN定义:位运算符将它的操作数视为32位元的二进制串(0和1组成)而非十进制八进制或十六进制数. 例如:十进制数字9用二进制表示为1001,位运算符就是在这个二进制表示上执行运算,但是返回结果是标准 ...