numpy+pandas基础

numpy和pandas都是python中的库,高级大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。

numpy简介

NumPy 是一个 Python 包。 它代表 “Numeric Python”。 它是一个由多维数组对象和用于处理数组的例程集合组成的库。

Numeric,即 NumPy 的前身,是由 Jim Hugunin 开发的。 也开发了另一个包 Numarray ,它拥有一些额外的功能。 2005年,Travis Oliphant 通过将 Numarray 的功能集成到 Numeric 包中来创建 NumPy 包。 这个开源项目有很多贡献者。

使用NumPy,开发人员可以执行以下操作:

  • 数组的算数和逻辑运算。

  • 傅立叶变换和用于图形操作的例程。

  • 与线性代数有关的操作。 NumPy 拥有线性代数和随机数生成的内置函数

pandas简介

Pandas是一个开放源码的Python库,它使用强大的数据结构提供高性能的数据操作和分析工具。它的名字:Pandas是从Panel Data - 多维数据的计量经济学(an Econometrics from Multidimensional data)。

2008年,为满足需要高性能,灵活的数据分析工具,开发商Wes McKinney开始开发Pandas

Pandas之前,Python主要用于数据迁移和准备。它对数据分析的贡献更小。 Pandas解决了这个问题。 使用Pandas可以完成数据处理和分析的五个典型步骤,而不管数据的来源 - 加载,准备,操作,模型和分析。

Python Pandas用于广泛的领域,包括金融,经济,统计,分析等学术和商业领域。

Pandas的主要特点

  • 快速高效的DataFrame对象,具有默认和自定义的索引。
  • 将数据从不同文件格式加载到内存中的数据对象的工具。
  • 丢失数据的数据对齐和综合处理。
  • 重组和摆动日期集。
  • 基于标签的切片,索引和大数据集的子集。
  • 可以删除或插入来自数据结构的列。
  • 按数据分组进行聚合和转换。
  • 高性能合并和数据加入。
  • 时间序列功能。

numpy及pandas安装

打开cmd,依次输入以下代码:

pip install numpy
pip install pandas

numpy和pandas都提供了许多强大好用的结构及函数,在此只举列部分,有需要用到其他时候可以自行查看numpy及pandas教程。

import numpy as np
# 创建简单的列表
a = [1, 2, 3, 4]
# 将列表转换为数组
x = np.array(a)
print x #打印数组
print x.ndim #打印数组的维度
print x.shape #打印数组各个维度的长度。shape是一个元组
print x.size #数组元素个数
print x.dtype #数组元素类型

numpy还提供了创建随机数组,对数组进行索引,切片,还可以对数组进行条件运算或是求行、列的最大值,最小值和平均值。

pandas中主要用到了数据帧格式(dataFrame)

数据帧(DataFrame)是二维数据结构,即数据以行和列的表格方式排列。

数据帧(DataFrame)的功能特点:

  • 潜在的列是不同的类型
  • 大小可变
  • 标记轴(行和列)
  • 可以对行和列执行算术运算

可导入CSV或者xlsx文件:

df = pd.DataFrame(pd.read_csv('name.csv',header=1))
df = pd.DataFrame(pd.read_excel('name.xlsx'))

或者直接创建:

df = pd.DataFrame({"id":[1001,1002,1003,1004,1005,1006], 
 "date":pd.date_range('20130102', periods=6),
  "city":['Beijing ', 'SH', ' guangzhou ', 'Shenzhen', 'shanghai', 'BEIJING '],
 "age":[23,44,54,32,34,32],
 "category":['100-A','100-B','110-A','110-C','210-A','130-F'],
  "price":[1200,np.nan,2133,5433,np.nan,4432]},
  columns =['id','date','city','category','age','price'])

基本函数:

print df.shape   #查看维度
print df.info()   #数据表基本信息
print df.dtypes   #每一列数据格式
print df['B'].dtype   #某一列数据格式
print df.isnull()   #空值
print df.fillna(value=0)   #用数字0填充空值

在Django中,我们一般用到QuerySet存放数据,如何将QuerySet转化为pandas? 如下:

import pandas as pd
import numpy as np
def qs_to_df(qs):
    """ QuerySet to DataFrame """
    Model = qs.model
    np_array = np.core.records.fromrecords(qs.values_list(), names=[f.name for f in Model._meta.fields])
    return pd.DataFrame(np_array)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值