相关文章推荐
稳重的钥匙  ·  《Android ...·  5 月前    · 
直爽的马克杯  ·  kivy-ios: install ...·  1 年前    · 
坚强的铁板烧  ·  ASM ...·  1 年前    · 
深沉的伏特加  ·  Structured ...·  1 年前    · 

在做数据分析时,时常会用到 dataframe.to_sql 语句,把一些计算或分析好的数据加入到数据库中,一般的添加是很好操作的,直接设置一个参数即可:

import pandas as pd
import sqlite3 as sq3
conn = sq3.connect(db_file_name, detect_types=sq3.PARSE_DECLTYPES)
dataframe.to_sql(
    table_name,
    con=conn,
    if_exists='append',
    index=False

如果存在,就添加到后面去,但是如果我们数据中都是有唯一key的怎么办?比如更新用户信息,假如一个用户已经存在数据表中了,我们要怎么处理?

一个笨方法就是把数据全部读取出来,然后更改之后再一次写进去,这么做如果数据量过大,就会很慢。

除了这个,那就只能依靠数据库本身的功能了,REPLACE。

就是先把要更新的用户和新用户加入到一个临时表格中,然后运用REPLACE语句去替换或添加到用户表里头去

做法如下:

USER_TABLE_NAME = 'UserInfo'
# dft 是一个 dataframe 数据集
dft.to_sql('temp', conn, if_exists='replace', index=False) # 把新数据写入 temp 临时表
connection = conn.cursor()
# 替换数据的语句
args1 = f""" REPLACE INTO "{USER_TABLE_NAME}"
             SELECT * FROM "temp"
connection.execute(args1) 
args2 = """ DROP Table If Exists "temp" """ # 把临时表删除
connection.execute(args2)
connection.close()
conn.commit()

这样就可以把新数据更新到数据表中了~

pandas数据表中的数据进行更新,这里推荐一个掩膜处理,具体代码如下 dataFieldAll['E'] = 0 dataFieldValGood = dataFieldVal[dataFieldVal[fieldIndex]<0.8)] dataFieldValGood['N']=1 # print('dataFieldValGood',dataFieldValGood.shape[0]) dataFieldAll = pd.merge(dataFieldAll, dataFieldValGo I am attempting to query a subset of a MySql database table, feed the results into a Pandas DataFrame, alter some data, and then write the updated rows back to the same table. My table size is ~1MM r... import pandas as pdimport numpy as npimport matplotlib.pyplot as plt创建一个Series,同时让pandas自动生成索引列s = pd.Series([1,3,5,np.nan,6,8])# 查看ss0 1.01 3.02 5.03 NaN4 6.05 8.0dtype: float64创建一个... #导入需要的包,使用pymysql操作数据库 #pandas包很强大,可以直接读取数据表,创建dataframe数据结构,同时可以直接将dataframe导出到数据库 #sqlalchemy创建引擎,与数据库进行连接 import pymysqlimport pandas as pdimport sqlalchemyfrom sqlalchemy import create_enginefr... name: 数据库中的表名 con: 与read_sql中相同,数据库连接的驱动 if_exits: 当数据库中的这个表存在的时候,采取的措施是什么,包括三个值,默认为fail fail,若表存在,则不进行数据表写入的相关操作 replace:若表存在,将数据库表中的数据覆盖; append:若表存在,将数据写到原表的后面。 index:是否将df 在另一篇文章中讲了利用PCA对图片数据进行降维,这次介绍一下另一种降维方法——LDA(Linear Discriminant Analysis),即线性判别分析。跟PCA不同,LDA是一种supervised的降维方法。即我们对数据降维时需要数据的label。 LDA的原理是要找到一个投影面,使得投影后相同类别的数据点尽可能的靠在一起,而不同类别的数据点尽可能的分开... pandas使用loc函数更新、修改dataframe指定数据行的内容(update or change the content of specific row of dataframe) 什么是pandaspandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas纳入了大量库和一些标准的数据模型,提供了大量能使我们快速便捷地处理数据的函数和方法。主要包含两种数据类型:Series和DataFrameSeries可以理解为dict的升级版本,主数组存放numpy数据类型,index数据存放索引DataFrame相当于多维的Series,有两个索引数... 一、前言最近做web网站的测试,遇到很多需要批量造数据的功能;比如某个页面展示数据条数需要达到10000条进行测试,此时手动构造数据肯定是不可能的,此时只能通过python脚本进行自动构造数据;本次构造数据主要涉及到在某个表里面批量添加数据、在关联的几个表中同步批量添加数据、批量查询某个表中符合条件的数据、批量更新某个表中符合条件的数据等。二、数据添加即批量添加数据到某个表中。insert_dat... 本文使用postgresql数据库,使用mysql等其他数据库时,需要在更改为如下情况,同时重写提交到mysql时使用的参数也应该做对应的修改,更新采用删除在添加的方式实现: #连接mysql数据库 jdbcDF = spark.read.format("jdbc")\ .option("driver","com.mysql.jdbc.Driver")\ .option("url","jdbc:mysql://***.***.**.***:3306/Gadaite")\     最近处理公交数据,原数据存在SQL Server数据中。从前处理数据时师兄让导至csv中处理,然而能够处理的数据毕竟有限,因此尝试直接将python连至数据库,在这里将老鼠屎使用的方法和大家分享,如有错误也请看官批评指正。    在这里提前交代一下博主的使用环境。操作系统:windows7,python版本:python3.6。1 Python连接SQL Server数据库    博主使用... 来源:Python数据分析1 简介就在几天前,pandas发布了其1.3版本,在这次新的版本中添加了诸多实用的新特性,今天的文章我们就一起来get其中主要的一些内容更新~2 pandas... 文章目录Series对象(一维)Numpy与Series创建Series对象DataFrame对象(二维)创建DataFrame对象Index对象 Series对象(一维) Series对象是带有索引数据构成的数组,可以作为通用型的Numpy数组,也可以看作特殊的Python字典 import pandas as pd data = pd.Series([0.25,0.5,0.75,1.0]) print(data) '''数据和索引绑定在一起 0 0.25 1 0.50 2 0.75