zoukankan      html  css  js  c++  java
  • python批量修改数据的功能

    import cx_Oracle
    import pandas as pd
    import random
    import numpy as np

    oracle数据库update时候不能使用%s做占位符
    def update_oracle():
    conn = cx_Oracle.connect('test/123456@Ip:1521/test')

    sql_str = """       
       select t.id,t.standard_id,t.standard_name
           from sq_standard t
       """
    df = pd.read_sql_query(sql_str,conn)
    #df.info()
    

    df.iloc[:2,:5]

    df.iloc[:,1] = df.iloc[:,1].map(lambda x: x[:-6])#更改  遍历所有号都加了bym
    

    df[:,:1]

    sr = df.iloc[:1,1:2]

    sr[:-6]

    #axis=1表示沿着x的方向,axis=0沿着y轴方向
    #修改某一列的数据
    #df['WLBM'].map(lambda x : x +'BYM')#给这一列数据拼接字符串
    

    df.loc['JZ90159201002']

    #data.columns = ['WLBM','CGBM']
    

    data.replace(np.nan, '--', inplace = True)

    # 建立游标
    cursor = conn.cursor() 
    flag_List = df.iloc[:,1].values.tolist()  #要修改的值
    id_list = df.iloc[:,0].values.tolist()  # id   list
    

    commit_id_list = [(id_list[i], flag_List[i]) for i in range(len(id_list))]

    commit_id_list = [(flag_List[i], id_list[i]) for i in range(len(id_list))]
     
    with conn.cursor() as cursor:
        try:
            #sql = "update sq_standard SET standard_id=(%s) where id=(%s)"
            sql = "update sq_standard SET standard_id=(:1) where id=(:2)"
           # sql = "update sq_standard set "
            print('00000000000')
            cursor.executemany(sql, commit_id_list)  # commit_id_list上面已经说明
            print('hihihihihihihi')
            conn.commit()
            print('执行结束!!!')
        except Exception as e: 
            print('产生异常!!!',e)
            conn.rollback()
    conn.close()
    return 'OK';
    

    学习笔记

    df.loc[:,['WLBM']]#根据标签进行取值
    df.iloc[:5,:1]#根据位置,位置就是行数列数,都是从0开始的
    df.iloc[0]
    df[:3]
    df.iloc[[0,2]]#取的是第一行和第三行
    df.iloc[:,[0,1]]#取的是第一列,第二列
    df.iloc[:,[0]]#取的是第一列
    df.iloc[[0]]#取的是第一行
    df['WLBM']#取的是某一列
    df.loc[:,'WLBM']#根据列名取的某一列值
    df.iloc[[1,3],[0,1]]#根据位置直接取第二行和第三行,对应的列为第一列,第二列的值。
    

    if name == 'main':
    update_oracle()

  • 相关阅读:
    mybatis之关联关系映射
    spa项目开发之tab页实现
    mybatis整合redis实现二级缓存
    mybatis整合spring
    mybatis动态sql和分页
    Mybatis入门
    使用java代码操作redis
    Redis安装
    IDEA的安装和使用
    Linux入门——安装jdk、tomcat、MySQL以及项目部署
  • 原文地址:https://www.cnblogs.com/hbym/p/13157424.html
Copyright © 2011-2022 走看看