python操作excel库xlwings---7、格式化数据
python操作excel库xlwings---7、格式化数据
一、总结
一句话总结:
格式化数据也就是处理各个地级市之间欧式距离的数据,因为原来数据不好取,所以可以生成一个283*283的表,来表示城市之间的距离,这样取数据特别方便
# 1、从excel中读地级市的欧氏距离 # 2、规整数据,生成一个283*283的表 # 3、将规整化的数据写入excel中
二、格式化数据
博客对应课程的视频位置:7、格式化数据-范仁义-读书编程笔记
https://www.fanrenyi.com/video/34/314
1、示例需求分析
需求
更加直观一点
操作步骤
步骤一:先处理数据
- 获取每个市的每一年的GDP(数据规整,不用处理)
- 处理地级市欧式距离(数据不好取,可以生成一个283*283的表,来表示城市之间的距离)
- 城市行政区域面积(数据规整,不用处理)
步骤二:按公式计算结果
2、格式化数据
处理地级市欧式距离(数据不好取,可以生成一个283*283的表,来表示城市之间的距离)
In [1]:
# 1、从excel中读地级市的欧氏距离
# 2、规整数据,生成一个283*283的表
# 3、将规整化的数据写入excel中
In [1]:
# 1、读地级市的欧氏距离
import xlwings as xw
# 应用->工作簿->工作表->范围
# 应用
app = xw.App(visible=True,add_book=False)
# 工作簿
wb = app.books.open("283地级市的欧氏距离.xlsx")
# 工作表
sht = wb.sheets["283地级市欧式直线距离(千米)"]
# 范围
data = sht.range("a2:i80090").value
# 保存excel
wb.save()
# 关闭excel程序
wb.close()
app.quit()
In [2]:
print(len(data))
print(data[0])
print(data[80088])
In [3]:
# 2、规整数据,生成一个283*283的表
# 初始化一个283*283的表,值全是0
distance = [[0]*283 for _ in range(283)]
# 向这个表里面填值
for i in data:
distance[int(i[1])-1][int(i[5])-1]=i[8]
print(distance[0])
In [4]:
# 3、将规整化的数据写入excel中
# 应用->工作簿->工作表->范围
# 应用
app = xw.App(visible=True,add_book=False)
# 工作簿
wb = app.books.add()
# 工作表
sht = wb.sheets["sheet1"]
# 范围
sht.range("a1").value=distance
# 保存excel
wb.save("规整化的283地级市的欧氏距离.xlsx")
# 关闭excel程序
wb.close()
app.quit()
3、按公式计算结果
处理地级市欧式距离(数据不好取,可以生成一个283*283的表,来表示城市之间的距离)
In [1]:
# 1、从excel中读地级市的欧氏距离
# 2、规整数据,生成一个283*283的表
# 3、将规整化的数据写入excel中
In [1]:
# 1、读地级市的欧氏距离
import xlwings as xw
# 应用->工作簿->工作表->范围
# 应用
app = xw.App(visible=True,add_book=False)
# 工作簿
wb = app.books.open("283地级市的欧氏距离.xlsx")
# 工作表
sht = wb.sheets["283地级市欧式直线距离(千米)"]
# 范围
data = sht.range("a2:i80090").value
# 保存excel
wb.save()
# 关闭excel程序
wb.close()
app.quit()
In [2]:
print(len(data))
print(data[0])
print(data[80088])
In [3]:
# 2、规整数据,生成一个283*283的表
# 初始化一个283*283的表,值全是0
distance = [[0]*283 for _ in range(283)]
# 向这个表里面填值
for i in data:
distance[int(i[1])-1][int(i[5])-1]=i[8]
print(distance[0])
In [4]:
# 3、将规整化的数据写入excel中
# 应用->工作簿->工作表->范围
# 应用
app = xw.App(visible=True,add_book=False)
# 工作簿
wb = app.books.add()
# 工作表
sht = wb.sheets["sheet1"]
# 范围
sht.range("a1").value=distance
# 保存excel
wb.save("规整化的283地级市的欧氏距离.xlsx")
# 关闭excel程序
wb.close()
app.quit()
版权申明:欢迎转载,但请注明出处
一些博文中有一些参考内容因时间久远找不到来源了没有注明,如果侵权请联系我删除。
在校每年国奖、每年专业第一,加拿大留学,先后工作于华东师范大学和香港教育大学。
2024-10-30:27岁,宅加太忙,特此在网上找女朋友,坐标上海,非诚勿扰,vx:fan404006308
AI交流资料群:753014672