• 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()

    效果图:

  • 相关阅读:
    贪心+stack Codeforces Beta Round #5 C. Longest Regular Bracket Sequence
    暴力/DP Codeforces Beta Round #22 (Div. 2 Only) B. Bargaining Table
    DFS Codeforces Round #299 (Div. 2) B. Tavas and SaDDas
    二分搜索 Codeforces Round #299 (Div. 2) C. Tavas and Karafs
    水题 Codeforces Round #299 (Div. 2) A. Tavas and Nafas
    数学 2015百度之星初赛2 HDOJ 5255 魔法因子
    贪心/数学 2015百度之星资格赛 1004 放盘子
    模拟 2015百度之星资格赛 1003 IP聚合
    rails安装使用版本控制器的原因。
    ActiveStorage. 英文书Learnrails5.2的案例,看如何放到云上。
  • 原文地址:https://www.cnblogs.com/luckyplj/p/12773137.html
Copyright © 2020-2023  润新知