python基础分析_数据分析之Python基础

2017年12月1日加入猴子老师的数据分析社群,到今日已经过去了一月有余。我从一个小白,逐渐掌握了Python的基础知识。在此感谢社群里帮助过我的小伙伴,比心!

在初识数据分析中,计划12月底完成Python基础的学习任务。这个小目标基本达成,给自己点个赞!下面分享下我的学习过程。

安装分析工具

工欲善其事必先利其器。这里推荐安装anaconda和jupyter,猴子老师整理的安装过程很详细,基本上可能出现的各种问题都可以在里面找到答案。

传送门

猴子老师码字辛苦,所以要认真的一步步按照教程来做。

学习Python基础

按照菜鸟教程里的章节学习即可。如果遇到暂时不懂得,没关系,我的经验是先跳过去,随着后面的学习,前面不懂得地方慢慢就理解了。

重点是多练习,每个章节下面有别人分享的笔记,我建议也看下,开阔下思路。

我本身有C++和Java的基础,对于数据类型、条件判断、循环、函数比较了解。语言不同,但是基本原理相同,区别只在于语法结构,多写几次就能记住了。下面是大概的框架。

数据结构

1.队列

队列是一种“先入先出”的数据结构。

#导入collections包

from collections import deque

#定义队列:排队吃饭人的编号

queue=deque(['001','002','003','04','005'])

#入队:在队列尾部插入元素

queue.append('006')

print(queue)

#出队:在队列头部删除元素

queue.popleft()

print(queue)

第一次print后的结果是

deque(['001', '002', '003', '04', '005', '006'])

第二次print后的结果是

deque(['002', '003', '04', '005', '006'])

由此可看出,新添加的元素被放置到了队尾,而删除元素时是从队首开始的。可以把这个过程想象成我们日常生活中的“排队”。

2.栈

栈是一种“先入后出”的数据结构。

#定义栈:浏览我个人知乎主页的顺序

stack=deque(['知乎动态','知乎回答','知乎文章'])

#入栈:在栈顶加入元素

stack.appendleft('知乎专栏')

print(stack)

#出栈

stack.popleft()

print(stack)

第一次print后的结果是

deque(['知乎专栏', '知乎动态', '知乎回答', '知乎文章'])

第二次print后的结果是

deque(['知乎动态', '知乎回答', '知乎文章'])

由此可看出,新添加的元素被放置到了栈顶,而删除元素时也是从栈顶开始的。可以把栈想象成一个“木桶”,当向木桶添加东西的时候会被放置在木桶的最上面,当从木桶取东西的时候最上方的东西被最先取走。这里要注意append/appendleft/pop/popleft这4个函数操作的位置。

3.排序字典

使用排序字典之前需要先导入collections包里的OrderedDict

from collections import OrderedDict

#定义有序字典

gafataOdDict=OrderedDict({'腾讯':'HK:00700',

'阿里巴巴':'baba',

'苹果':'Apple',

'谷歌':':GOOGLE',

'Facebook':'fb',

'亚马逊':'amzn'})

gafataOdDict

这里得到的结果如下

OrderedDict([('腾讯', 'HK:00700'),

('阿里巴巴', 'baba'),

('苹果', 'Apple'),

('谷歌', ':GOOGLE'),

('Facebook', 'fb'),

('亚马逊', 'amzn')])

可见使用OrderedDict创建的字典,输出时的顺序和我定义的顺序是一样的。这里特别注意OrderedDict是按照插入key的顺序,对字典排序,而不是按照key这个值的顺序排序的。

下面对比Python基础的字典类型。

gafataDict1 = {

'腾讯':'HK:00700',

'阿里巴巴':'baba',

'苹果':'Apple',

'谷歌':'GOOGLE',

'Facebook':'fb',

'亚马逊':'amzn'

}

gafataDict1

这里得到的结果如下

{'Facebook': 'fb',

'亚马逊': 'amzn',

'腾讯': 'HK:00700',

'苹果': 'Apple',

'谷歌': 'GOOGLE',

'阿里巴巴': 'baba'}

对比可以发现,Python基础字典在输出时与我定义时的顺序是不同的。

使用Python对数据进行简单清洗和汇总

应用到使用以下知识点循环批量处理数据

collections包中的计数器Counter

pandas包中的read_csv函数。

1.简单的数据清洗:将所有的股票代码转换成大写

'''定义字典:6家公司(GAFATA)的股票代码key:公司名称value:股票代码'''

gafataDict = {

'腾讯':'HK:00700',

'阿里巴巴':'baba',

'苹果':'Apple',

'谷歌':'GOOGLE',

'Facebook':'fb',

'亚马逊':'amzn'

}

#将股票代码全部大写

for key,value in gafataDict.items():

newValue = value.upper()

gafataDict[key] = newValue

print(gafataDict)

得到的结果如下

{'腾讯': 'HK:00700', '阿里巴巴': 'BABA', '苹果': 'APPLE', '谷歌': 'GOOGLE', 'Facebook': 'FB', '亚马逊': 'AMZN'}

2.简单的数据统计:统计positionName列中与“数据分析”相关的职位数目

DataAnalyst.csv文件中的positionName列用于存放职位名称,其中存在很多与“数据分析”不相关的职位。这里使用3个关键词“数据分析”“数据运营”“分析师”进行筛选匹配,从而得到目标职位。

import pandas as pd

from collections import Counter

dataAnalyst = pd.read_csv(r'DataAnalyst.csv', encoding='gbk')

positionName_col = dataAnalyst['positionName']

#用于存放“数据分析”相关职位

analyst = []

for pn in positionName_col.values:

if pn.find('数据分析')!=-1:

analyst.append(pn)

elif pn.find('数据运营')!=-1:

analyst.append(pn)

elif pn.find('分析师')!=-1:

analyst.append(pn)

else:

continue

positionDic = Counter(analyst)

positionDic.most_common(3)

这里输出与“数据分析”相关的职位中排名前三的职位及数目,如下

[('数据分析师', 660), ('需求分析师', 137), ('分析师', 133)]

以上就是目前全部的学习内容了。期待后面的学习!希望早日学成,用自己的本事,挣一份体面的生活!

码字辛苦,如果对各位看官有那么点帮助就请点个赞吧!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值