python数据清洗实战入门笔记(二)文件操作
程序员文章站
2024-03-23 08:27:46
...
这是一个关于淘宝母婴产品的用户消费行为的数据集,然后基于这个数据集,做数据清洗
数据集地址:https://pan.baidu.com/s/1kMH1AhE8RUyaT73rvJsVPQ
提取码:aai6
csv文件读写
import pandas as pd
import numpy as np
import os
# 更改文件路劲
os.chdir(r'G:\pythonProject\pc\Python数据清洗\data')
#设置最大显示列数
pd.set_option('display.max_columns', 20)
#设置最大显示行数
pd.set_option('display.max_rows', 100)
# 婴儿信息表
baby = pd.read_csv('sam_tianchi_mum_baby.csv', encoding='utf-8')#默认将第一行作为表头,一般用utf-8编码
baby.head(10)
# 编码为gbk中文编码
# 订单数据
order = pd.read_csv('meal_order_info.csv',encoding = 'gbk', dtype = {'info_id':str,'emp_id':str})
#这里转换字段类型方便统一处理
order
excel文件读写
# 订单数据
df1 = pd.read_excel('meal_order_detail.xlsx',encoding = 'utf-8',sheet_name = 'meal_order_detail1')# 读取excel需要注明具体哪一个工作簿,否则就是第一个工作簿
df1.head(5)
df2 = pd.read_excel('meal_order_detail.xlsx',encoding = 'utf-8',sheet_name = 0)# sheet_name可以为数字,代表第几个工作簿
df2.head(5)
#保存数据
df1.to_excel('a1.xlsx',sheet_name='one',index=False)
数据库文件读写
#导入相关库
import pymysql
from sqlalchemy import create_engine
按实际情况依次填写MySQL的用户名、密码、IP地址、端口、数据库名 create_engine(‘mysql+pymysql://user:aaa@qq.com:3306/test01’)
root 用户名
passward --密码
IP : 服务区IP
3306: 端口号
test01 :数据库名称
# 建立连接
conn = create_engine('mysql+pymysql://root:aaa@qq.com:3306/test')
# 读取数据
sql = 'select * from meal_order_info' #选择数据库中表名称
df1 = pd.read_sql(sql,conn)
#df1 是个dataframe格式
# # # 函数
def query(table):
host = 'localhost'
user = 'root'
password = '123456'
database = 'test'
port = 3306
conn = create_engine("mysql+pymysql://{}:{}@{}:{}/{}".format(user, password, host, port, database))
#SQL语句,可以定制,实现灵活查询
sql = 'select * from ' + table #选择数据库中表名称
# 使用pandas 的read_sql函数,可以直接将数据存放在dataframe中
results = pd.read_sql(sql,conn)
return results
df2 = query('dim_color')
df2
数据保存
df.to_sql(name,con=engine,if_exists=‘replace/append/fail’,index=False)
name是表名
con是连接
if_exists:表如果存在怎么处理 – append:追加 – replace:删除原表,建立新表再添加 – fail:什么都不干
index=False:不插入索引index
import os
os.chdir(r'G:\pythonProject\pc\Python数据清洗\data')
df = pd.read_csv('baby_trade_history.csv')
try:
df.to_sql('dim_color',con = conn, index= False,if_exists= 'replace')
print(df.head(5))
except:
print('error')
#Python是否能将数据写入数据库,很多时候取决于数据库的权限
上一篇: 进程间的通讯---消息队列
下一篇: 设计模式---中介者模式
推荐阅读
-
python数据清洗实战入门笔记(二)文件操作
-
python学习笔记(十 二)、操作数据库
-
入门小远学爬虫(二)(六)简单GET型网页爬虫实战——“前程无忧”爬虫岗位信息的爬取之简单“数据清洗”
-
python学习笔记(十 二)、操作数据库
-
【Python高级学习笔记day01】Linux介绍、命令+操作系统+发展史+文件和目录+Ubuntu入门+常用 Linux 命令的基本使用+Linux 终端命令格式+Linux基本命令
-
学习笔记(01):Python数据清洗实战-数据离散化
-
python从入门到实践-项目实战二数据可视化-生成数据
-
入门小远学爬虫(二)(六)简单GET型网页爬虫实战——“前程无忧”爬虫岗位信息的爬取之简单“数据清洗”