学习数据分析前首先了解Python的两个常用包:Numpy和Pandas。由于学习进度原因,今天先讲Pandas包,Numpy包的讲解之后补上。本模块主要目标是希望读者在碎片时间可以阅读本公众号进行学习。因此,每篇文章都尽量设置成短篇形式。好啦,废话不多说,一起来学习吧。
在数据分析中,Pandas使用频率很高,一方面因为Pandas提供的数据结构DataFrame和json的契合度很高,转换起来很方便。另一方面,在日常数据清洗时,几句Pandas代码就可以对数据进行规整。交代一下,本小白用的Python是3.7版本的,用的编辑器是Pycharm。
正如Numpy中数据围绕ndarray展开,Pandas中核心数据结构是Series和DataFrame。它们分别代表着一维的序列和二维的表结构。基于这两种数据结构,Pandas可以对数据进行导入、清洗、处理、统计和输出。
Series是个定长的字典序列,定长是因为在存储的时候,相当于两个ndarray,这也是和字典结构最大的不同。字典结构里,元素的个数是不确定的。
Series有两个基本属性:index和values。index默认0,1,2,…递增的整数序列,也可以指定索引,如index=['a','b','c','d']
。
import pandas as pd
from pandas import Series,DataFrame
x1=Series([1,2,3,4])
x2=Series(data=[1,2,3,4],index=['a','b','c','d'])
print(x1)
print(x2)
运行结果:
0 1
1 2
2 3
3 4
dtype: int64
a 1
b 2
c 3
d 4
dtype: int64
其中,x1中的index是默认值,x2中index进行了指定。也可以使用字典的方式来创建Series。
d={'a':1,'b':2,'c':3,'d':4}
x3=Series(d)
print(x3)
运行结果:
a 1
b 2
c 3
d 4
dtype: int64
DataFrame数据结构类型类似数据库表。包括行索引和列索引,可以将DataFrame看成由相同索引的Series组成的字典类型。以下虚构一个考试成绩:
import pandas as pd
from pandas import Series,DataFrame
data={'Chinese':[66,89,65,67,67],'English':[87,64,86,88,88],'Math':[90,89,87,98,98]}
df1=DataFrame(data)
df2=DataFrame(data,index=['Zhangfei','GuanYu','ZhaoYun','DianWei','DianWei'],columns=['English','Chinese','Math'])
print(df1)
print(df2)
运行结果:
Chinese English Math
0 66 87 90
1 89 64 89
2 65 86 87
3 67 88 98
4 67 88 98
English Chinese Math
Zhangfei 87 66 90
GuanYu 64 89 89
ZhaoYun 86 65 87
DianWei 88 67 98
DianWei 88 67 98
了解了Series和DataFrame这两个数据结构后,从数据处理角度来看他们的使用方法。
Pandas允许直接从xlsx,csv等文件中导入数据,也可以输出到xlsx,csv文件,非常方便。
import pandas as pd
import numpy as np
from pandas import Series,DataFrame
score=DataFrame(pd.read_excel('data.xlsx'))
score.to_excel('data1.xlsx')
print(score)
在运行时注意,如果缺少xlrd包和openpyxl包,可以使用“pip.install”命令安装。也可以在文件的设置选项进行安装。
本节主要讲了Pandas包中的两个核心数据结构Series和DataFrame,并在此基础上讲了数据文件的导入和输出。下一节主要讲数据清洗。
欢迎大家关注个人微信公众号:小菜鸡的技术之路。大家一起学习,一起交流啊!下面是公众号二维码。