csv文件格式如下:
user_id,大类编码,大类名称,中类编码,中类名称,小类编码,小类名称,销售日期,goods_id,商品类型,销售数量,销售金额,商品单价,是否促销,cluster轮廓系数,clusterCalinski-Harabasz指数,clusterSilhouette,clusterCalinskiHarabasz
7,20,粮油,2001,袋装速食面,200102,猪肉口味,20150101,DW-2001020021,一般商品,1.0,3.0,3.0,0,0,0,0,0
35,20,粮油,2013,调味酱,201301,番茄酱,20150101,DW-2013010014,一般商品,1.0,6.7,6.7,0,5,5,0,5
10,15,日配,1505,冷藏乳品,150503,冷藏果粒酸乳,20150101,DW-1505030022,一般商品,1.0,5.9,8.9,1,8,8,1,8
数据库用了轻量级的python自带的sqlite:
import sqlite3
import csv
# 创建一个SQLite数据库连接
conn = sqlite3.connect('shopping_data.db')
cursor = conn.cursor()
# 创建购物数据表
cursor.execute('''CREATE TABLE IF NOT EXISTS shopping_data (
user_id INTEGER,
大类编码 INTEGER,
大类名称 TEXT,
中类编码 INTEGER,
中类名称 TEXT,
小类编码 INTEGER,
小类名称 TEXT,
销售日期 TEXT,
goods_id TEXT,
商品类型 TEXT,
销售数量 REAL,
销售金额 REAL,
商品单价 REAL,
是否促销 INTEGER,
cluster轮廓系数 INTEGER,
clusterCalfskinBarabbas INTEGER,
cluster轮廓系数2 INTEGER,
clusterCalfskinHarass2 INTEGER
)''')
# 从CSV文件中读取数据,并插入到SQLite表中
with open('merged_output.csv', 'r', encoding='utf-8') as file:
reader = csv.reader(file)
next(reader) # 跳过标题行
for row in reader:
cursor.execute('''INSERT INTO shopping_data VALUES (?, ?, ?, ?, ?,?,?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)''', row)
# 提交更改并关闭连接
conn.commit()
conn.close()
print("数据已成功导入到SQLite数据库中。")
测试一下,搞定
更改相关代码,把之前读取csv格式的方法改成读取文件
def read_data_from_db(db_file):
con = sqlite3.connect(db_file)
cur = con.cursor()
sql = "SELECT * FROM shopping_data" # Replace 'your_table_name' with the actual table name
data = pd.read_sql_query(sql, con)
try:
cur.execute(sql)
person_all = cur.fetchall()
for p in person_all:
print(p)
except Exception as e:
print(e)
print("false")
finally:
cur.close()
con.close()
return data
data部分内容如下:
相关部分需要修改
即可~