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、文件型对象加载带分隔符的数据,默认分隔符为'\t'。

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

效果图:

 

posted @ 2020-04-25 15:08  雨后观山色  阅读(530)  评论(0编辑  收藏  举报