python数据分析5

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’)是一种,不同的版本,不同的电脑不一样,当你检查代码还是报错的话,就搜索那个错误就可以找到不少解决方法。


有啥问题欢迎童鞋们留言!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值