CSV文件用python导入mysql

pandas函数参考:https://pandas.pydata.org/docs/reference/api/pandas.read_csv.html#pandas.read_csv

sql语句参考:https://www.runoob.com/sql/sql-in.html

代码1

import pandas as pd
from sqlalchemy import create_engine

select_env = 'dev'  # 'prd'/'pre'/'qa'/'dev'
database_env = 'xx'
target_db_info = {
    
    'user': 'xx',
                  'password': 'xx',
                  'host': 'xx',
                  'port': 6033,
                  'db': 'xx'
                  }

table_name = 'ai_chat_bot'
path = r'./qa_pair.csv'

data = pd.read_csv(path, sep='\t', encoding='utf-8')
data_add = list(range(len(data['question'])))
data.insert(0, 'id', data_add)
print(data)
# target connect
con_target = create_engine(
    'mysql+pymysql://%(user)s:%(password)s@%(host)s:%(port)d/%(db)s' %
    target_db_info, encoding='utf-8')
data.to_sql(table_name, con_target, index=False, if_exists='replace')
print('导入成功...')

代码2

可以通过这种方式,在mysql直接创建索引

data.to_sql(table_name, con_target, index_label=['id'], if_exists='replace')

代码3

查询符合条件的,一次性读取进来,然后转换成dict

SELECT id,answer FROM `ai_chat_bot` WHERE id in ('0', '1', '2', '3', '4')

1、增加标题

在这里插入图片描述

2、确定好分隔符

在这里插入图片描述

3、python dataframe新增一列

1、直接在后面新增一列
指明列名,并赋值即可:
data[‘addlist’]=[1,2]
2、在指定位置新增一列
用insert()函数,data.insert(位置,列名,列值),例如:
data.insert(2,‘c’,’’)
3、根据现有列计算生成新的列
dataframe 根据某列的值生成新的列
df2[‘是否逾期’]=df2.apply(lambda x:0 if x.应付日期>today_time else 1,axis=1)
df2[‘是否到期90天’]=(today_time - df2.应付日期).map(lambda x:1 if x.days >= 90 else 0)
4、现有多列合并为一列
直接用+号即可,
dataframe[“newColumn”] = dataframe[“age”].map(str) + dataframe[“phone”] + dataframe["address”]
其中,map(str) :非string列转换为string后再合并

4、mysql创建索引

CREATE INDEX index_id ON ai_chat_bot (id);

在执行CREATE TABLE语句时可以创建索引,也可以单独用CREATE INDEX或ALTER TABLE来为表增加索引。

1、使用CREATE INDEX创建,语法如下:

CREATE INDEX indexName ON tableName (columnName(length));
例如我们对ip_address这一列创建一个长度为16的索引:

CREATE INDEX index_ip_addr ON t_user_action_log (ip_address(16));
2、使用ALTER语句创建,语法如下:

ALTER TABLE tableName ADD INDEX indexName(columnName);
ALTER语句创建索引,下面提供一个设置索引长度的例子:

ALTER TABLE t_user_action_log ADD INDEX ip_address_idx (ip_address(16));

SHOW INDEX FROM t_user_action_log;
3、建表的时候创建索引

CREATE TABLE tableName(
id INT NOT NULL,
columnName columnType,
INDEX [indexName] (columnName(length))
);

猜你喜欢

转载自blog.csdn.net/qq_15821487/article/details/125487634