因此,如果只需要添加几行,我想着的任务将很简单,但是我需要添加的几百行以CSV
的形式存在文件。
基本上,在工作中发生的事情是有人关闭了为数据库提供一些数据的服务。因此,我需要使用此期间缺少的数据手动更新数据库。
我的计划是:
我的问题是:
当列的顺序不同,并且列数比原始表少1个时,我很好奇如何尝试“垂直”合并行。列名相同。
答案 0 :(得分:1)
使用python pandas将值附加到mysql表中。
导入库
import pandas as pd
from sqlalchemy import create_engine
import sqlalchemy
创建引擎和函数以转储数据。
engine = sqlalchemy.create_engine("%s://%s:%s@%s:%s/%s" % (
"mysql+pymysql",
"username",
"password",
"ip",
port,
"mysql database name"
))
def dump_to_sql(dump_df, relationship):
'''
Uses pandas.to_sql to dump directly into the DB
'''
global engine
dump_df.to_sql(name=relationship, con=engine, if_exists='append', index=False,chunksize=1000)
将csv读取为熊猫数据框,并将其传递给函数。
df=pd.read_csv('name_of_your_csv.csv')
dump_to_sql(df,'name of your mysql table in which you want to upload')
注意:请确保您的csv与mysql表具有相同的列名。缺少的列将填充为空值。