python数据分析pandas库
前言
为啥要用python中的pandas库进行数据分析,用excel不可以吗?不可以,excel处理上万条数据时通常会死机或者出错,python不会有这种问题。相信鲤鱼学长,在学习乃至日后工作中,pandas库将会风靡相当长一段时间。
这一章是关于pandas数据结构的内容,由于本人不是计算机类专业,了解起来可能有点不准确,恳请大佬斧正。
2.1简介
这一章是关于pandas的DataFrame和Series的内容,这两好像是pandas的数据结构吧。就像我们人体有很多种蛋白质、细胞构成,他们俩和pandas的关系就像蛋白质、细胞和我们人体关系一样。
2.2创建数据
2.2.1创建Series
咱来康康如何手动创建DataFrame,也就是不从文件加载数据。在pandas中,series是一维容器,有点像python内置的列表。在DataFrame里,每个列必须是列名,值是series,每一列的数据类型(dtype)必须相同。有一个简单的办法创建Series,代码如下:
import pandas as pd
s=pd.Series(['pandas',42])
print(s)
结果如下:
0 pandas
1 42
dtype: object
这里可以看到左侧的“0”、“1”这些行号是Series的索引,也就是说,咱可以给Series中的值指定一个“名称”。就像这样:
s=pd.Series(['Wes McKinney','Creator of Pandas'],
index=['Person','Who'])
print(s)
结果如下:
Person Wes McKinney
Who Creator of Pandas
dtype: object
2.2.2创建DataFrame
咱其实可以把DataFrame看做由Series组成的字典,可以这样来创建DataFrame,代码如下:
scientists=pd.DataFrame({
'Name':['Rosaline Franklin','William Gosset'],
'Occupation':['Chemist','Satisician'],
'Born':['1920-07-25','1876-06-13'],
'Died':['1958-04-16','1937-10-16'],
'Age':[37,61]})
print(scientists)
结果如下:
Name Occupation Born Died Age
0 Rosaline Franklin Chemist 1920-07-25 1958-04-16 37
1 William Gosset Satisician 1876-06-13 1937-10-16 61
多输出几次不难发现,每次输出的顺序并非固定的。咋办呢?咱可以用columns参数指定列的顺序,用index参数把name列用作行索引,代码如下:
scientists=pd.DataFrame({
'Name':['Rosaline Franklin','William Gosset'],
'Occupation':['Chemist','Satisician'],
'Born':['1920-07-25','1876-06-13'],
'Died':['1958-04-16','1937-10-16'],
'Age':[37,61]},
index=['Rosaline Franklin','William Gosset'],
columns=['Occupation','Born','Died','Age'])
print(scientists)
结果如下:
Occupation Born Died Age
Rosaline Franklin Chemist 1920-07-25 1958-04-16 37
William Gosset Satisician 1876-06-13 1937-10-16 61
2.3Series
咱在1.3.2里面提到,用切片方法会影响结果的类型,咱来康康用DataFrame的loc属性获取scientists的第一行会是啥情况,代码如下:
first_row=scientists.loc['William Gosset']
print(type(first_row))
print(first_row)
结果如下:
<class 'pandas.core.series.Series'>
Occupation Satisician
Born 1876-06-13
Died 1937-10-16
Age 61
Name: William Gosset, dtype: object
可以看到,原来这个scientists是object属性的,切片后是得到一个Series对象。
明天咱康康Series的方法,我感觉有点慢了,因为涉及到数据结构的玩意,我不是很熟悉,不知道开学前能不能整完。
我用的python版本是python3.7 64位,pycharm是2017.1 64位。大家根据自己的电脑来安装python和编译器。
欢迎大家关注我的微信公众号:鲤鱼学长
注意:
1、这里也可以选择不把结果打印出来。
2、python里路径的写法,我这(r’xxx’)是一种,不同的版本,不同的电脑不一样,当你检查代码还是报错的话,就搜索那个错误就可以找到不少解决方法。
有啥问题欢迎童鞋们留言!