Python数据处理与数据可视化入门级别题目,带个人解析代码讲解和个人构思思维分析图。

题目如下:

123家已信贷记录的企业数据文件是2020年全国数学建模竞赛c题的附件1中的表单1,可自行网上下载;

如下是个人构思思维分析图:

 

然后代码实现和解析注释如下:

#制作人:早晚得猝死的yuan
'''
下面那些语句一开始不懂很正常,csdn看别人的代码,看看他怎么解释的,
多查查就知道大概做什么的了,然后调调参数,多看几个,看看能不能拼凑着用。
还有就是可以在代码后用 # 或者 ‘’’ 来注释来方便你去理解代码和让别人读懂,检查代码、调试代码也方便
'''
#先引用库 (一开始不懂没关系,知道大概干啥的就行)
from openpyxl import load_workbook
import xlwt
#获取excel数据
workbook = load_workbook('C:\\Users\\yuan\\Desktop\\附件1:123家有信贷记录企业的相关数据.xlsx')#找到需要xlsx文件的位置
sheets = workbook.get_sheet_names()                   # 从名称获取sheet
booksheet = workbook.get_sheet_by_name(sheets[0])     #获取指定sheet数据
rows = booksheet.rows                                 #获取sheet页的行数据
columns = booksheet.columns                            #获取sheet页的列数据
rows = booksheet.rows                                 #获取sheet页的行数据
columns = booksheet.columns                            #获取sheet页的列数据

#这里是全局变量
list_A = []         #A信誉等级企业名字
list_B = []         #B信誉等级企业名字
list_C = []         #C信誉等级企业名字
list_D = []         #D信誉等级企业名字

#迭代(循环储存的意思)所有Excel中的行与列
i = 1 #循环获取指定行要用,先在外边初始化,不能写循环里面,因为你想一想如果把i=1写循环里面,那i就一直循环是1了,指定行也就一直是1,这样不是我们想要的效果
for row in rows:
    i = i + 1
    name = booksheet.cell(row=i, column=2).value #获取企业名字的数据 (row是行,column是列)
    denji = booksheet.cell(row=i, column=3).value #获取信誉等级的数据
    weiyue = booksheet.cell(row=i, column=4).value #获取是否违约的数据
    #记住这里是嵌套的结构,每进一次循环,就判断一下,不懂嵌套的快去看c语言,这里嵌套要注意格式,这些判断太简单了
    #还有就是理解continue和break的区别,continue是结束当前一次循环,而break是整个for都结束了,别混淆了
    if (weiyue== "是"):           #判断是否违约
        continue #违约的话结束当前循环,不进行下面操作
    elif (weiyue == None):        #判断是否为空数据
        continue #空的话结束当前循环,不进行下面操作
    elif (denji== "A"):#信誉等级是A的情况
        list_A.append(name)       #A等级公司列表存入该公司名字
        list_A.append(denji)      #A等级公司列表存入该公司等级
    elif (denji== "B"):#信誉等级是B的情况
        list_B.append(name)       #B等级公司列表存入该公司名字和等级
        list_B.append(denji)      #B等级公司列表存入该公司等级
    elif (denji== "C"):#信誉等级是C的情况
        list_C.append(name)       #C等级公司列表存入该公司名字和等级
        list_C.append(denji)      #C等级公司列表存入该公司等级
    elif (denji== "D"):#信誉等级是D的情况
        list_D.append(name)       #D等级公司列表存入该公司名字和等级
        list_D.append(denji)      #D等级公司列表存入该公司等级

#按照等级排序循环将公司数据放入总列表里面,方便后面存入数据使用,如果你不想搞这个也行,后面存入你要多写几个,你可以尝试一下哈哈哈哈
sumlist = []                                        #创建一个新的空列表
#按照A、B、C排列顺序依次循环存入总列表
#如果遇到不知道怎么添加进去什么的问题,csdn就完了,别害怕而不敢写,很多逻辑和c语言差不多,只是语法不同罢了,大胆一点
for a in list_A:
    sumlist.append(a)
for b in list_B:
    sumlist.append(b)
for c in list_C:
    sumlist.append(c)
for d in list_D:
    sumlist.append(d)
# print(sumlist)
#调试测试使用(有时候不一定能一次性成功,使用有时候报错或者出问题了,就在一些地方输出看看是不是这个东西像自己所想那样,方便调试改错)
print("数据处理部分完成")
print("准备导出数据")


#创造新Excel里的表单和设置列名,(这里先不着急创建文件,最后面保存时会自动生成新的Excel,现在先将数据导入到表单)
book = xlwt.Workbook(encoding='utf-8',style_compression=0)      #设置表格的格式(让其中文能够正常显示)这个不用理解也行
sheet = book.add_sheet('无违约的不同等级的企业名单',cell_overwrite_ok=True)  #创建一个新的表单sheet
col = ('企业名字','信誉等级')                                       #两个列标题的名字写在一个元组里,便于后面循环写入
for i in range(0,2):                                             #通过循环在新Excel中写入两个列标题
    sheet.write(0,i,col[i])
print("在新Excel创建表单成功")

#存入数据
q=1  #这里初始化q的原因是为了让循环存入数据不会出现跳越格子存入,好好思考一下,调试一下代码感受一下,你可以想想不用q的话,什么办法也能一样效果)
for f in range(0,len(sumlist)):                 #通过循环总无违规公司列表,将对应数据写入新文件中
    if (f == 0):                                #第0个的数据写入新excel中”企业名字“那一列
        sheet.write(q,0,sumlist[f]) #sheet,write(指定的行,指定的列,对应的数据)
        print("正在存入数据new企业名字")                      #方便检测是否正常运行
    elif (f%2 == 1):                            #偶数的话是等级,所以写入新excel中”信誉等级“那一列
        sheet.write(q,1,sumlist[f]) #sheet,write(指定的行,指定的列,对应的数据)
        q = q + 1
        print("正在存入数据new信誉等级")                     #方便检测是否正常运行
    elif (f%2 != 1):                            #奇数的话是企业名字,所以写入新excel中”企业名字“那一列
        sheet.write(q,0,sumlist[f]) #sheet,write(指定的行,指定的列,对应的数据)
        print("正在存入数据new企业名字")                     #方便检测是否正常运行
print("导入数据结束")
savepath = "C:\\Users\\yuan\\Desktop\\无违约的不同等级企业数据.xlsx"  #指定路径
book.save(savepath)                               #按照路径进行保存,自动生成Excel
print("导出成功")
#对了如果需要重新编译运行,记得关文件,不然会报错笨蛋

#第二题部分
#开始画不同信用等级的公司数目数据统计图咯
'''
其实一开始不一定要完全熟练,csdn找到自己想要的效果运行图,
用他们的代码,然后大概读懂他们的代码,你调参数就行了,
但是记住了,别忘记更改一下跟自己不一样的路径呀或者是什么参数变量
如果遇到一些报错别着急,细心一点,查一下csdn,看看别人怎么解决的
或者自己看看是不是哪个地方有问题呢
(好吧其实我有时候也很急躁很烦哈哈哈哈哈)
'''
#先调用需要的库
import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties
font_set = FontProperties(fname = r"C:\windows\fonts\simsun.ttc",size = 15)  #设置系统中的字体(宋体)为字型样式
x = ["A","B","C","D"]#设置x轴
y = [0.5*len(list_A),0.5*len(list_B),0.5*len(list_C),0.5*len(list_D)] #设置y轴
#这里为什么要*0.5呢,是因为前面这个lsit_XXX导入数据分别有企业名字和信誉等级两个数据,使以一半才是他们企业真正的数目
plt.bar(x,y)#制作出xy图
plt.title("不同信用等级的公司数目数据统计图",fontproperties = font_set);#标题文字设置,你看title也就知道啥意思了
plt.xlabel("企业数目",fontproperties = font_set);   #x轴的左侧文字
plt.ylabel("信誉等级",fontproperties = font_set);   #y轴的右侧文字
plt.show()#展示图窗口

'''
有时候不一定说非要一定要熟练学过xxxx或者什么,更重要的是编程思想和解决问题的思路方式,和遇到问题时的搜索查资料能力
只有基础打好了,训练多了,才能走的更高更远!
多调试,多思考,多练
'''

因为作为入门级别,所以方法与解释可能有欠缺,如果有问题可以评论指点一下,谢谢!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Python数据分析与可视化从入门到精通是一本介绍如何使用Python进行数据分析和可视化的书籍。它从基础知识开始,逐步介绍了Python数据分析和可视化工具,包括NumPy、Pandas、Matplotlib、Seaborn等。此外,书中还介绍了如何使用Python进行数据清洗、数据处理数据可视化等方面的内容。通过学习这本书,读者可以掌握Python数据分析和可视化的基本技能,从而更好地应对实际工作中的数据分析和可视化问题。 ### 回答2: Python是一种非常流行的编程语言,在数据分析和可视化方面也有着非常广泛的应用。Python数据分析与可视化从入门到精通,对于想要学习Python数据分析和可视化的人来说,是一本非常好的书。 这本书首先介绍了Python语言基础,并由浅入深地介绍了Python数据分析的各种工具,如NumPy、Pandas和Matplotlib。人们可以学会如何使用这些工具来进行数据处理、统计分析和可视化展示。书中的示例代码非常详细,读者可以轻松地理解和复现这些代码,并逐步掌握Python数据分析和可视化的技能。 在介绍完Python数据分析的基础知识后,书中进一步深入探讨了如何使用Python进行高级数据分析和可视化。例如,在高级数据分析方面,书中介绍了如何进行文本分析和情感分析等应用。在可视化方面,书中介绍了一些高级的可视化技术,例如交互可视化、3D可视化等。 此外,Python数据分析与可视化从入门到精通还深入探讨了如何将Python应用于机器学习和人工智能等领域。它介绍了PyTorch、Keras和TensorFlow等深度学习库,以及机器学习和深度学习的一些基本概念,如监督学习和无监督学习等。读者可以用Python来训练自己的机器学习模型,并将其应用于各种实际问题中。 总之,Python数据分析与可视化从入门到精通,是一本非常完整和系统的Python数据分析教材,不仅适合初学者入门使用,也适合进阶的学习者深入学习Python数据分析和可视化。如果你想要学习和掌握Python数据分析和可视化技巧,这本书是你的不二选择。 ### 回答3: Python数据分析和可视化是当前非常流行的技能,在由海量数据和信息化的时代背景下,Python的高效性和便捷性为人们的数据分析和可视化提供了非常强大的工具。初学者们想要从入门到精通Python数据分析和可视化需要系统化的学习和实践。 1.入门阶段: 对于初学者们来说,Python的基础语法是必需的,不仅包括Python的基本语法规则,还包括Python的面向对象编程思想、常用的库及其使用方法等知识。因此,初学者首先要掌握Python基础语法,再学习Python常用的数据结构和函数,最重要的是要多多练习。在此基础上,可以阅读相关的书籍,参加线上课程或者教育培训活动,例如Coursera、Udacity、edx等,了解数据分析和可视化的基本概念和原理,掌握常用的数据分析和可视化工具,例如Numpy、Pandas等,同时少量的应用也能提高初学者的实践能力。 2.进阶阶段: 经过一段时间的探索和学习,了解过Python的基础语法、数据结构等方面的知识,此时,初学者可以开始进阶学习。首先应该对数据分析和可视化的完整流程有更深的了解,从数据的获取、分析、可视化到报告产生,这个过程第一步是要了解和学习各种数据源,包括CSV、数据库、Excel等,然后默熟掌握Numpy、Pandas等工具结合Matplotlib、Seaborn等表库进行数据分析和可视化,了解基于量化金融、人工智能、机器学习等前沿技术的数据科学,通过学习基本的统计分析学和概率论等数学知识,初步形成自己的思路。 3.精通阶段: 精通数据分析和可视化需要花费大量的时间和精力,需要不断的沉淀,学习基于Pandas、Numpy、Matplotlib、Seaborn等工具的计算机科学技术,还要不断探索新的数据科学技术,例如Scikit-learn、TensorFlow等,着重学习结合数据科学工作的数据分析工具和前沿技术的新型思维和方法,逐渐能够形成独具特色的数据认知系统和方法论。同时,通过参加线上或线下数据分析竞赛活动,开始主导自己的数据科学项目,最终成为一名“数据探险家”,为数据科学社区和客户提供无可替代的数据分析和可视化服务。 总之,Python数据分析和可视化从入门到精通需要付出大量的时间和精力,不仅仅依赖于学习,同时也需要在实际的数据分析和可视化场景中加以应用和实践,持之以恒地探索和进步。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yuan04040404

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值