68 lines
1.6 KiB
Markdown
68 lines
1.6 KiB
Markdown
|
|
#python
|
|||
|
|
#数据分析
|
|||
|
|
|
|||
|
|
首先,把对应的,数据库插件,安装一下
|
|||
|
|
|
|||
|
|
``` shell
|
|||
|
|
pip install pandas sqlalchemy
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
![[Pasted image 20250509154650.png]]
|
|||
|
|
|
|||
|
|
然后,可以参考,这个python脚本,写查询统计,相关逻辑
|
|||
|
|
|
|||
|
|
``` py
|
|||
|
|
import sqlite3
|
|||
|
|
import pandas as pd
|
|||
|
|
from pathlib import Path
|
|||
|
|
|
|||
|
|
# 1. 设置CSV文件路径(使用原始字符串r防止转义问题)
|
|||
|
|
csv_path = r"C:\Users\admin\Desktop\player.csv"
|
|||
|
|
|
|||
|
|
# 2. 检查文件是否存在
|
|||
|
|
if not Path(csv_path).exists():
|
|||
|
|
print(f"错误:文件 {csv_path} 不存在!")
|
|||
|
|
exit()
|
|||
|
|
|
|||
|
|
# 3. 读取CSV文件
|
|||
|
|
try:
|
|||
|
|
df = pd.read_csv(csv_path)
|
|||
|
|
print("CSV文件加载成功!前5行数据预览:")
|
|||
|
|
print(df.head())
|
|||
|
|
except Exception as e:
|
|||
|
|
print(f"读取CSV文件失败:{e}")
|
|||
|
|
exit()
|
|||
|
|
|
|||
|
|
# 4. 创建内存数据库
|
|||
|
|
conn = sqlite3.connect(":memory:")
|
|||
|
|
|
|||
|
|
# 5. 将数据导入数据库
|
|||
|
|
try:
|
|||
|
|
df.to_sql("players", conn, index=False, if_exists="replace")
|
|||
|
|
print("\n数据已成功导入SQLite内存数据库(表名:players)")
|
|||
|
|
except Exception as e:
|
|||
|
|
print(f"导入数据库失败:{e}")
|
|||
|
|
conn.close()
|
|||
|
|
exit()
|
|||
|
|
|
|||
|
|
# 6. 执行示例查询
|
|||
|
|
while True:
|
|||
|
|
print("\n" + "="*50)
|
|||
|
|
print("请输入SQL查询语句(输入q退出):")
|
|||
|
|
sql = input("SQL> ").strip()
|
|||
|
|
|
|||
|
|
if sql.lower() == 'q':
|
|||
|
|
break
|
|||
|
|
|
|||
|
|
try:
|
|||
|
|
result = pd.read_sql(sql, conn)
|
|||
|
|
print("\n查询结果:")
|
|||
|
|
print(result)
|
|||
|
|
print(f"\n共返回 {len(result)} 条记录")
|
|||
|
|
except Exception as e:
|
|||
|
|
print(f"查询错误:{e}")
|
|||
|
|
|
|||
|
|
# 7. 关闭连接
|
|||
|
|
conn.close()
|
|||
|
|
print("\n程序已退出")
|
|||
|
|
```
|