学习python数据分析的心得体会

了解Python,学会Python,实战python

通过这次Python学习,我收获了很多,一方面学习到了许多以前没学过的专业知识与知识的应用,另一方面还提高了自我动手做项目的潜力。本学期学习中是对我潜力的进一步锻炼,也是一种考验。从中获得的诸多收获,也是很可贵的,是十分有好处的。

在学习过程中我学到了许多新的知识,是一个让我把书本上的理论知识运用于实践中的好机会,原先,学的时候感叹学的资料太难懂,此刻想来,有些其实并不难,关键在于理解。在这次学习中还锻炼了我其他方面的潜力,提高了我的综合素质。首先,它锻炼了我做项目的潜力,提高了独立思考问题、自我动手操作的潜力,在工作的过程中,复习了以前学习过的知识,并掌握了一些应用知识的技巧等。其次,实训中的项目作业也使我更加有团队精神。
 

Python简介以及环境搭建:
Python是一种开源语言,Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构。
搭建Python环境我们只需要一个解析器和一个编译器,解析器我们可以选择从Python官方网站上下载,也可以直接去安装Anaconda(这个东西不但有完整的Python解析器,而且自带很多Python常用库,甚至还有可以运行代码的IDE)。随后我们找到了PyCharm-Professional这样一个专业IDE以求更好地编写代码。关于PyCharm这个东西的激活问题,你可以
 

一、Python语言与数据分析

Python是我新接触的一门语言,但不是我接触的第一门语言。Python与我之前接触的C,C++甚至Pascal都不同。学过Java的同学讲,Python的语法和一些方法都与Java类似,但是又不完全相同。

通过两个月的对Python基础的学习我发现Python是一门十分简洁的语言,它的思想和C类语言有着很大的区别,它没有变量类型,它所有的仅仅是数据类型;它没有数组,取而代之的是列表,元组和字典等等。这些区别让我学习起来十分的不适应,下学期开设Java课程后,我会将Java和Python结合起来学习,这样估计我对Python这门语言的理解会更深一些。

与C类语言最大的不同的是,Python的方法非常强大,而且Python的代码非常简洁,你甚至不需要特别调用任何库就可以用一个方法完成对线性数据结构的增删改查。由于树形数据结构没有涉及到,所以没能体会到树形结构增删改查在Python中的实现,但是我从网上可以查到:Python用一个列表就可以实现树形结构的存储,实现方式类似于C中用纯属组实现堆。当然Python里没有struct,但是我们可以使用定义类的方法来帮助我们满足对于struct的需求。同样的,你也可以使用类来实现更为复杂的树形数据结构。

那么问题来了,既然Python能用一个小列表实现树,那么Python怎么实现图呢?

其实很简单:Python中有一个数据存储结构叫字典,如果我们同时使用字典和列表,就可以完美的实现图。而且,用这种方法实现图,在求最短路的时候,只需要一遍循环,配合Python独有的强大的方法就可以求得最短路径。

当然,对于树和图的实现,这么紧张的课程安排里面老师也不会去讲,但是作为一个计科专业的学生,这些问题我们不得不去考虑(虽然在我们工作后,这些数据结构基本不需要手写,直接调用库函数就可以了,但是知其所以然对于技术领域的我们来说永远是没有错的)。

        Python与数据分析相结合时,主要用于数据的处理、清洗和规整化,包括数据的获取、离散化、丢弃、填补、变换和重塑等多个方面。Python 库pandas使这些任务变得容易。例如,可以很容易地将数据分组和聚合,创建数据交叉表,或处理时序数据。Pandas的大量内置函数也可能使数据分析和清洗的工作变得更加轻松和高效。

        Python也支持各种机器学习算法,包括决策树、聚类、回归、朴素贝叶斯、SVM等等。机器学习可以用于训练各种模型并进行分类、预测和数据聚类等操作。Python的Scikit-learn和TensorFlow等机器学习框架也是目前应用最广泛的工具之一。

        在实践中,数据分析师需要将Python语言和相关的数据分析库进行合理有效地运用。一般而言,数据分析流程包括了数据的收集、校验、清洗、转换、建模和分析等过程。在Python语言中,常见的数据分析库有 numpy、pandas、matplotlib、seaborn 和 sklearn 等。学会应用这些库以及相应的函数,就可以较高效率地处理各种数据,并利用 Python 的机器学习库来构建数据模型。

实践是最好的老师

        在实践中,Python数据分析的学习需要结合实践和经验积累,自己的动手实践可以让理论知识更好地实践运用。掌握数据分析和相关工具的知识是非常重要的,但是,仅仅有理论知识是不够的,需要将其转化为实践经验。通过不断的练习来探索,不断用数据验证和修正自己的方法和算法。

Python数据分析的优点

              Python的广泛应用还在于其效率和可读性,Python语言的简洁会加速您的代码开发速度。Python的庞大社区也将带来更多机遇和发展空间。而且Python语言在不断演进,会有更多有型有用的工具和库的涌现。

最后,我认为Python数据分析的学习需要结合实践和经验积累。持续关注相关领域和数据分析的前沿技术,了解行业动态,掌握新的分析工具和算法,实践探索调整更加合理的数据分析方法和技术路线。这样我们才能更好

二、下面是我在课堂上学习到的代码,通过讲解分析和大家一起学习

import pandas as pd 
musicdata = pd.read_csv('D:\JAY/musicdata.csv',engine='python') 
musicdataGroup = musicdata[['format','metric','value_actual']].groupby(by='format') 
print('分组后的音乐行业收入信息表为:',musicdataGroup)

       1.这段代码使用了pandas库对音乐行业收入信息表格进行了分组,按照“format”列进行分组,并选择了“metric”和“value_actual”列进行统计。

其中,read_csv()函数用于读取csv文件,'D:\JAY/musicdata.csv’是文件的路径和名称。engine='python’参数指定使用Python解释器读取文件。

groupby()函数是对数据按照指定的列进行分组,这里用“format”作为分组依据。

最后,我们输出了分组后的结果musicdataGroup。

rint('音乐行业收入信息表分组后前五组每组的均值为:\n',musicdataGroup.mean().head()) 
print('音乐行业收入信息表分组后前五组每组的标准差为:\n',musicdataGroup.std().head()) 
print('音乐行业收入信息表分组后前五组每组的中位数为:\n',musicdataGroup.median().head())

    2.这段代码分别使用了mean()、std()和median()函数计算了每组的均值、标准差和中位数,并输出了结果。

mean()函数用于计算每组的均值,std()函数用于计算每组的标准差,median()函数用于计算每组的中位数。

mean()、std()和median()函数均是聚合函数,可以对分组后的每组数据进行统计计算,从而得到各组数据的均值、标准差和中位数等描述性统计量。

输出结果中,“head()”函数表示只输出前五组的结果。

def DoubleSum(data): s = data.sum() * 2 return s 
print('音乐行业收入信息表的实际销售价格两倍总和为:\n',musicdata.agg({'value_actual':DoubleSum},axis=0))

3.这段代码定义了一个函数DoubleSum(),用于计算输入数据的总和的两倍。然后,利用agg()函数应用函数DoubleSum()到音乐行业收入信息表“value_actual”列的数据上进行聚合,并输出结果。

其中,agg()函数是对数据进行聚合计算的函数,可以传入一个自定义函数,对数据进行自定义的聚合计算。这里使用了一个字典作为agg()函数的参数来指定需要聚合的列和聚合函数。

axis=0参数指定将函数应用于每个列。函数返回一个DataFrame,包含了使用自定义函数后的统计计算结果。

def DoubleSum1(data): s = np.sum(data) * 2 return s 
print('音乐行业收入信息表的销售数量两倍总和为:\n',musicdata.agg({'number_of_records': DoubleSum1},axis=0).head())

4.这段代码定义了一个函数DoubleSum1(),用于计算输入数据的总和的两倍。然后,利用agg()函数将函数DoubleSum1()应用到音乐行业收入信息表的“number_of_records”列上进行聚合,并输出结果。

其中,np.sum()是NumPy库中的求和函数,可以对一个数组或列表进行求和。

axis=0参数指定将函数应用于每个列。函数返回一个DataFrame,包含了使用自定义函数后的统计计算结果。由于输出结果较多,使用了.head()函数,只输出前五条记录。

​
#使用seabor库绘图
sns.lmplot(x='每月平均工作小时数(小时)',y='满意度',data=data,hue='薪资',fit_reg=False)
plt.xlabel('平均每个月工作时长(小时)')
plt.ylabel('满意度水平')
plt.title('满意度水平与平均每个月工作小时')
plt.show()

​

5.这段代码使用Seaborn库来绘制散点图,并且使用hue参数对散点图进行染色,展示了每个员工的薪资水平。散点图利用横轴和纵轴上的数值变量,将数据点画在二位坐标轴上,在判断两种数值变量之间是否存在关系时很有用。下面我将对该代码的实现进行解释:

sns.lmplot(x='每月平均工作小时数(小时)', y='满意度', data=data, hue='薪资', fit_reg=False)

lmplot()是Seaborn库中的一个函数,用于绘制 线性模型图。在这里,x参数是散点图中的横坐标变量,表示每个员工平均每个月工作的小时数;y参数是散点图中的纵坐标变量,表示每个员工的满意度水平;data参数是需要用于绘图的数据集,为一个Pandas DataFrame对象;hue参数用于对数据进行染色,每个薪资水平的员工用不同颜色表示;fit_reg参数用于控制是否显示回归线。在这里将其设置为False表示不需要绘制回归线。

plt.xlabel('平均每个月工作时长(小时)')
plt.ylabel('满意度水平')
plt.title('满意度水平与平均每个月工作小时')
plt.show()

这段代码用于设置绘图的基本属性。xlabelylabel用于设置横坐标和纵坐标的标签名;title用于设置图表标题。show()函数用于显示图像。

以上就是这段代码的解释,通过绘制散点图可以很容易地观察到两个变量之间的关系。其中,利用hue参数进行染色则能更为直观地反映出数据的特点,提高绘图的可读性。

总结

对这个学期整个过程我有如下总结:

一、继续学习,不断提升理论涵养。

在信息时代,学习是不断地汲取新信息,获得事业进步的动力。作为一名青年学子更就应把学习作为持续工作用心性的重要途径。走上工作岗位后,我会用心响应单位号召,结合工作实际,不断学习理论、业务知识和社会知识,用先进的理论武装头脑,用精良的业务知识提升潜力,以广博的社会知识拓展视野。

二、努力实践,自觉进行主角转化。

只有将理论付诸于实践才能实现理论自身的价值,也只有将理论付诸于实践才能使理论得以检验。同样,一个人的价值也是透过实践活动来实现的,也只有透过实践才能锻炼人的品质,彰显人的意志。务必在实际的工作和生活中潜心体会,并自觉的进行这种主角的转换。

能够说这次Python实训不仅仅使我学到了知识,丰富了经验。也帮忙我缩小了实践和理论的差距。在未来的学习中我会把学到的理论知识和实践经验不断的应用到实际中,为实现理想而努力。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值