zoukankan      html  css  js  c++  java
  • NLP学习笔记09---python的pandas库和matplotlib库使用

    1.Pandas介绍

    pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。pandas提供了大量能使我们快速便捷地处理数据的函数和方法。你很快就会发现,它是使Python成为强大而高效的数据分析环境的重要因素之一
    2.Series类型

    (1)series类型说明

    series就是一种类似于一维数组的对象,他是由一组数据以及一组与其相关的数组标签组成(索引)。仅由一组数据即可产生最简单的series

    (2)入门小案例

    import pandas as pd
    from pandas import Series,DataFrame
    obj=Series([1,2,3,4,5])
    print(obj)
    print(obj.values)
    print(obj.index)

    效果图:

    (3)自定义索引

    import pandas as pd
    from pandas import Series,DataFrame
    obj=Series(['a','b','c','d','e'],index=[1,2,3,4,5])
    print(obj)

    效果图:

    (4)把Series当做字典使用

    import pandas as pd
    from pandas import Series,DataFrame
    data={'a':10000,'b':20000,'c':30000}
    obj=Series(data)
    print(obj)
    keys=['a','c']
    obj1=Series(data,index=keys)
    print(obj1)

    效果图:

    3.DataFlame类型

    DataFlame是一个表格型的数据结构,它含有一组有序的列,每列可以是不同类型的值(布尔、字符串、数值都可以)

    DataFlame本身有行索引也有列索引。

    DataFlame可以理解为有Series组成的字典

    import pandas as pd
    from pandas import Series,DataFrame
    data={
        '70年代':['丽丽','张华','小明'],
        '80年代':['爱国','卫国','美丽'],
        '90年代':['linda','mary','jack'],
    }
    frame_data=DataFrame(data)
    print(frame_data)
    print(frame_data['80年代'])

    效果图:

    扩展案例:

    import pandas as pd
    import numpy as np
    from pandas import Series,DataFrame
    dates= pd.date_range('20190301',periods=6)
    #print(dates)
    df=pd.DataFrame(np.random.randn(6,4),index=dates,columns=['a','b','c','d'])
    print(df)

    效果图:

    注意:

    np.random.randn(d0,d1,d2……dn) 
    1)当函数括号内没有参数时,则返回一个浮点数; 
    2)当函数括号内有一个参数时,则返回秩为1的数组,不能表示向量和矩阵; 
    3)当函数括号内有两个及以上参数时,则返回对应维度的数组,能表示向量或矩阵; 
    4)np.random.standard_normal()函数与np.random.randn()类似,但是np.random.standard_normal()的输入参数为元组(tuple). 
    5)np.random.randn()的输入通常为整数,但是如果为浮点数,则会自动直接截断转换为整数。

    np.random.randn()可以返回一个或一组服从标准正态分布的随机样本值

    4.pandas的层次化索引

    层次化索引是pandas的一项比较重要的功能,它能够让你在一个轴上拥有多个索引级别。另一种说法是它能以低维度的形式处理高维度的数据。

    import pandas as pd
    import numpy as np
    from pandas import Series,DataFrame
    data=Series(np.random.randn(10),index=[['a','a','a','b','b','b','c','c','d','d'],[1,2,3,4,5,6,7,8,1,2]])
    print(data)

    效果图:

     

    5.pandas文本格式数据处理

    常用方法总结:

    read_csv:从文件、url、文件型对象加载带分隔符的数据,默认分隔符为逗号

    read_table:从文件、url、文件型对象加载带分隔符的数据,默认分隔符为' '。

    read_fwf:读取固定宽列的格式化数据

    (1)read_csv方法使用

    <1>读取带表头的csv数据

    import pandas as pd
    import numpy as np
    from pandas import Series,DataFrame
    print(pd.read_csv('data1.csv'))

    效果图:

    <2>读取不带表头的csv数据

    没有头部,csv里的数据都是目标数据,则pandas会自动生成一个头部

    import pandas as pd
    import numpy as np
    from pandas import Series,DataFrame
    print(pd.read_csv('data1.csv',header=None))

    效果图:

    (2)read_table方法使用

    需要指定分割符为,

    import pandas as pd
    import numpy as np
    from pandas import Series,DataFrame
    print(pd.read_table('data1.csv',sep=','))

    效果图:

    (3)pandas读取excel文件并绘图

    import pandas as pd
    import numpy as np
    from pandas import Series,DataFrame
    excel=pd.read_excel('test.xlsx')
    pl=excel.plot(kind='scatter',x='age',y='price').get_figure()  #读取excel表age和price列绘制散点图
    pl.savefig('1.png')

    效果图:

    6.matplotlib库

    matplotlib绘图重要的技巧:查看https://matplotlib.org/ 官方文档

    (1)绘图的入门案例

    import pandas as pd
    import numpy as np
    from pandas import Series,DataFrame
    import matplotlib.pyplot as plt
    plt.plot(np.arange(10))
    plt.show()  #显示所绘制的图片

    效果图:

    (2)绘制子图

    import pandas as pd
    import numpy as np
    from pandas import Series,DataFrame
    from numpy.random import randn
    import matplotlib.pyplot as plt
    fig=plt.figure()
    ax1=fig.add_subplot(2,2,1)
    ax2=fig.add_subplot(2,2,2)
    ax3=fig.add_subplot(2,2,3)
    ax4=fig.add_subplot(2,2,4)
    plt.plot(randn(50).cumsum(),'k--')  # 灰色
    ax1.hist(randn(100),bins=20,color='k',alpha=0.3)
    ax2.scatter(np.arange(30),np.arange(30)+3*randn(30))
    plt.show()

    效果图:

    (3)绘图小案例

    import pandas as pd
    import numpy as np
    from pandas import Series,DataFrame
    from numpy.random import randn
    import matplotlib.pyplot as plt
    x=[1,2,3,4,5]
    y=[2,4,6,8,10]
    plt.plot(x,y,linestyle='--',color='#CECECE')  # 指定x为横轴,y为纵轴,线的样式、颜色
    plt.show()

    效果图:

  • 相关阅读:
    MKMapVIew学习系列2 在地图上绘制出你运行的轨迹
    WPF SDK研究 Intro(6) WordGame1
    WPF SDK研究 Intro(3) QuickStart3
    WPF SDK研究 Layout(1) Grid
    WPF SDK研究 目录 前言
    WPF SDK研究 Intro(7) WordGame2
    WPF SDK研究 Layout(2) GridComplex
    对vs2005创建的WPF模板分析
    WPF SDK研究 Intro(4) QuickStart4
    《Programming WPF》翻译 第6章 资源
  • 原文地址:https://www.cnblogs.com/luckyplj/p/12773137.html
Copyright © 2011-2022 走看看