程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

CSV文件用python導入mysql

編輯:Python

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)[email protected]%(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))
);


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved