首页 > 其他分享 >数据清洗2

数据清洗2

时间:2024-03-19 21:00:45浏览次数:21  
标签:geocodes cursor result address new 清洗 数据 conn

代码如下:

复制代码
import json
import pymysql
import pandas as pd
import requests
from sqlalchemy import create_engine

# 连接MySQL数据库
conn = pymysql.connect(host='localhost', user='root', password='你的密码', db='你的数据库', charset='utf8')

# 编写SQL查询语句
sql = "SELECT * FROM table3 "

# 使用pandas读取数据
df = pd.read_sql(sql, conn)

new_addresses = []

# 更改循环变量名,避免与 DataFrame 对象名冲突
for i, address in enumerate(df['单位']):
    if address:
        url = 'https://restapi.amap.com/v3/geocode/geo?address=' + address + '&output=JOSON&key=你的key'
        request = requests.get(url).text
        try:
            result = json.loads(request)
        except json.JSONDecodeError as e:
            new_address=address
        if result['status'] == "1":
            adcode = result['geocodes'][0]['adcode']
            sql2 = "UPDATE table3 SET 行政区划编码 = '%s' where 单位 = '%s' " % (adcode, address)
            # 执行数据库插入
            cursor = conn.cursor()
            cursor.execute(sql2)
            conn.commit()
            if result['geocodes'][0]['district']:
                new_address = str(result['geocodes'][0]['province']) + str(result['geocodes'][0]['city']) + str(result['geocodes'][0]['district'])
            else:
                if result['geocodes'][0]['city']:
                    new_address = result['geocodes'][0]['province'] + result['geocodes'][0]['city']
                else:
                    new_address = result['geocodes'][0]['province']
        else:
            new_address = address
    else:
        new_address = ""
        address = ""
    if new_address != address:
        sql1 = "UPDATE table3 SET 单位 = '%s' WHERE 单位 = '%s'" % (new_address, address)
        #向table3插入行政区划编码
        # 使用cursor执行SQL语句
        cursor = conn.cursor()
        cursor.execute(sql1)
        conn.commit()
        cursor.close()
    print(address + "---->" + new_address + " --" + str(i))

conn.close()
复制代码

同理其他表也是这样操作,然后再合并。

标签:geocodes,cursor,result,address,new,清洗,数据,conn
From: https://www.cnblogs.com/azwz/p/18083937

相关文章

  • 使用java代码对数据库中的表单数据进行:增,删,改,查,操作。
    1、数据库表单如下:2、在项目中创建TestLinkMysql.java类,用于数据库的增删改查操作。代码如下: packageLink.Mysql;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.sql.SQLExcept......
  • Garnet: 力压Redis的C#高性能分布式存储数据库
    今天看到微软研究院开源了一个新的C#项目,叫Garnet,它实现了Redis协议,可以直接将Redis替换为Garnet,客户端不需要任何修改。根据其官网的信息,简单的介绍一下它。开源仓库地址:https://github.com/microsoft/garnet文档地址:https://microsoft.github.io/garnet/Garnet是微软研究院基......
  • 实现数据结构与算法学习笔记(java)——顺序表顺序栈代码实现
    顺序表实现顺序栈实现......
  • 数据库数据查询:使用SELECT语句从数据库中检索数据
    这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注......
  • 构建不平衡数据集
    chatgpt呆子,不知道怎么构建不平衡数据及,不会递减的构建,长尾人表示心痛琐碎直接给个万能模板importargparseimportrandomfromdata_utilsimport*fromlossimport*importtorch.nnasnnimporttorch.optimasoptimfromtorch.utils.data.samplerimportWeight......
  • 如何处理PHP中的表单数据?
    处理PHP中的表单数据其实就像是一个老师收集学生的作业一样。当学生在作业本上写完作业并交给老师后,老师需要查看、批改这些作业。在网站上,表单就像是学生的作业本,用户填写表单并提交后,网站就需要处理这些数据。下面我会用简单的步骤来解释PHP如何处理表单数据:1.创建表单首......
  • C语言 数据在内存中的存储
    目录前言一、整数在内存中的存储二、大小端字节序和字节序判断2.1.练习一2.2练习二2.3练习三2.4练习四2.5练习五2.6练习六三、浮点数在内存中的存储3.1 浮点数存的过程3.2浮点数取的过程总结前言数据在内存中根据数据类型有不同的存储方式,今天我们......
  • 使用navicat导出查询大量数据结果集并导入到其他数据库(mysql)
    在工作中我们偶尔会遇到处理数据的问题;比如需要将处理后的结果集导出来再导入到数据;具体的的实现方案有:1、导出excel再导入在navicat中选中对应数据库的表对象,右键选择导入,导出向导,如图: 2、将查询的结果集导出成sql实现步骤:先整理查询的sql;执行查询,再选择对话框上面的......
  • Spring JdbcTemplate+Druid数据源+FreeMarker 开发代码生成器
    虽然在这个时代,几乎所有成熟的开发框架都自带代码生成器,但有时候我们难免会遇到没有代码生成器的开发框架,这个时候,自己手中有一套代码生成器,把模版文件调整一下立马就能用,这就比较惬意了。这里讲一下如何利用SpringJdbcTemplate+Druid数据源+FreeMarker开发一套代码生成器。......
  • 多数据源加密(90%来自文心一言)
    在dynamic-datasource-spring-boot-starter3.2.0中,如果你希望对加密的密码进行自定义解密,你需要实现自己的PropertySourceLocator或者自定义配置解析逻辑,以便在读取配置时能够自动解密密码。以下是实现自定义解密逻辑的一般步骤:创建自定义的解密工具类首先,你需要一个能......