数据分析师该学Python还是R?两者在数据分析方面的主要区别是什么?

62 篇文章 0 订阅
42 篇文章 1 订阅

前言

我现在是Python,R和Excel三持选手,Python是我最开始学的,然后千年接手一个项目的统计与数据分析工作,这个项目本来是我一个学长在做的,但是他去别的地儿做博后了,就留给了我,麻烦就麻烦在,给了我两部分的代码,一部分是python的,主要是做一些机器学习,特别是clustering。还有另一部分是R语言,这是我的主管写的,因为她只会R语言,并且做出来的图确实要比python的好看一点。

【----帮助Python学习,以下所有学习资料文末免费领!----】

由于时间紧迫,我也没时间把R语言那部分代码改成python,另外就算改了,也变相的增大了主管的代码阅读和理解难度。

所以我基本上可以说是自学的R语言,当然我并没有把R语言从头到尾学了个遍,因为它本来就是个工具语言,学了项目用到的那部分就足够了,之后又需要的再继续补充就好了。

差不多就一个月的时间吧,有了Python的基础之后,学R语言其实非常的简单。

其实有一个核心的论点,就是,找到正儿八经工作之前,最好Python和R都会,因为你没办法预测下一份工作到底需要Python还是R。

理想点的话,你应该Python,R和Excel都会。

Excel是今年为了教课突击的,用完了之后发现Excel的可取之处也不少,比如很方便的做数据透视图。

在这里插入图片描述

其实这三者都有自己独特的优势:

Python:非常适合处理大规模的数据,其次使用的人数最多,有大量的包和库供新手使用。

R:专业的统计学家用软件,在统计方面的造诣很高,其次的话做出来的图挺好看的。

Excel:短平快,很容易用鼠标拖拖拽拽就可以做出来不错的图标。

我们主要来讨论Python和R。

数据分析的大部分工作是由我来完成的,我是这样分配的。

对于非结构化数据,也就是那些日志类数据,我是用的python,因为我主要拿它来做情感分析,这部分属于机器学习的NLP部分,而python对于机器学习更为擅长。

对于结构化数据,我选择了R,因为R在统计方面确实更厉害,当然了,最主要的原因是项目负责人
用的是R,否则我还得用python重构,所以我也不得不花了点时间学习了下R。

用过R之后,发现它在统计方面和作图确实是比较厉害。统计就不用说了,这就是它最强大的地方,其次就是作图,我主要用的是ggplot2这个库。

至于学了python需不需要R,我觉得这个真的看你的需求,如果你的项目没有必须要用R,那么python也是足够的,因为R有的包,一段时间之后Python也会有。而python是个万金油的语言,几乎所有的方面它都有不错的库,以下方面仅仅是一部分。

在这里插入图片描述

另外还有几个方面可以参考:

目标人群:

Python:

深入研究数据分析或应用统计技术的程序员以及转向数据科学的开发人员和程序员。Python是一种可用于生产的语言,这意味着它能够成为一种与工作流的每个部分集成的单一工具!

R:

主要用于学术研究,对于探索性数据分析非常有用。近年来,企业使用范围迅速扩大。没有计算机编程技能的统计学家、工程师和科学家。它在学术界、金融界制药、媒体和营销很受欢迎。

优点:

Python:

它通用编程语言不仅仅是数据分析,其他方面也很强。
可以直接用的代码很多
非常适合数学计算学习算法
具有高度易部署性和再现性。

R:

可以制作很漂亮的图形和易于可视化
具有许多数据分析功能
非常适合统计分析
围绕命令行构建,但大多数R用户在RStudio运营R代码,可以理解为跟vs code一样的编辑器

缺点:

Python:

统计方面的库不如R多

作图方面弱于R

R:

发明者是统计学家,学起来可能不那么的舒服
社区不如python发达,包有但是不一定好找
R的运行速度很依赖于代码写得好不好
机器学习,特别是深度学习、NLP这类不如Python流行

其实从我自己的经验来看,可以先学Python,因为它学起来真的简单,主要需要掌握的知识其实更偏向于背后的逻辑,比如说数理统计,你拿到一个数据后怎么一步步的进行分析。而所谓的编程和数据处理,其实都是简单的部署而已,特别是现在有ChatGPT的存在,Python和R之间的代码其实非常容易进行互相转化。

比如我先用ChatGPT生成一个Python进行数据处理的代码:

在这里插入图片描述
你可以看到,基本的数据处理就是这么几步:

读数据Reading data from a CSV file
清洗数据Cleaning missing values
基本的统计分析Performing some basic statistical analysis
数据转化/操作Data transformation
数据可视化Data visualization

换到R语言上面也一样,也都是这么几步,用ChatGPT可以在几分钟之内转换完成。

在这里插入图片描述
Python和R之间会有一些区别,比如在一些语法上:

语法和语言结构

赋值操作符:在Python中,您使用 = 进行赋值,而R还允许使用 <- 作为赋值操作符。

Python:df[‘new_column’] = df[‘existing_column’].apply(lambda x: x ** 2)
R:df n e w c o l u m n < − d f new_column <- df newcolumn<dfexisting_column^2

匿名函数:Python使用 lambda 用于匿名函数。

Python:.apply(lambda x: x ** 2)
R:直接应用操作:df$existing_column^2

数据框访问:Python使用方括号 [],而R使用 $ 符号来访问数据框中的列。

Python:df[‘existing_column’]
R:df$existing_column

库和函数

导入库:Python使用 import 语句,而R使用 library() 函数。
Python:import pandas as pd
R:library(ggplot2)

读取CSV文件:用于读取CSV文件的不同函数。

Python:pd.read_csv(‘data.csv’)
R:read.csv(‘data.csv’)

处理缺失值:两种语言都有自己处理NA值的方式。

Python:df.dropna(inplace=True)
R:df <- na.omit(df)

数据摘要:用于生成数据摘要统计的不同函数。

Python:df.describe()
R:summary(df)

绘图:Python使用Matplotlib,而R在示例中使用ggplot2。

Python:plt.hist(df[‘existing_column’], bins=10, alpha=0.5)
R:ggplot(df, aes(x=existing_column)) + geom_histogram(binwidth=10, alpha=0.5, fill=“blue”)

错误处理

文件未找到:Python使用 try 和 except 进行错误处理,而R使用 tryCatch。

Python:try: … except FileNotFoundError: …
R:tryCatch({ … }, error = function(e) { … })

最后还是要强调一下:对于数据分析来说,思路第一,工具第二。代码这件事情现在已经不是最难的部分的了, 而这套思路才是最为核心不可取代的东西。

-END-


Python入门全套学习资料附带源码:

Python全套学习路线 (以下所有资料文末免费领取)

Python安装包
链接:https://pan.xunlei.com/s/VNlRZOxzhb147tdluq7TWA8DA1?pwd=gx9b#
复制这段内容后打开手机迅雷App,查看更方便

部分福利《看漫画学PythonPDF》
链接:https://pan.xunlei.com/s/VNm4IJCFa20_O9hHoNuKDLdmA1?pwd=557b#
复制这段内容后打开手机迅雷App,查看更方便

在这里插入图片描述

Python零基础入门视频

在这里插入图片描述

Python项目源码

在这里插入图片描述

Python入门到进阶电子书籍和实战案例

在这里插入图片描述

👉100道Python练习题👈

检查学习结果。

👉面试刷题👈

在这里插入图片描述

资料领取

上述这份完整版的Python全套学习资料已经上传网盘,朋友们如果需要可以微信扫描下方二维码输入“领取资料” 即可自动领取
或者

点此链接】领取

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值