数据清洗文件操作--csv txt文件读写excel文件读写数据库文件读写
Posted xingnie
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据清洗文件操作--csv txt文件读写excel文件读写数据库文件读写相关的知识,希望对你有一定的参考价值。
数据清洗之文件操作
- 这是一个关于淘宝母婴产品的用户消费行为的数据集,然后基于这个数据集,做数据清洗
csv文件读写
In [ ]:
import pandas as pd
import numpy as np
import os
In [ ]:
# 更改文件路劲
os.chdir(‘F:CSDN课程内容代码和数据‘)
In [ ]:
#设置最大显示列数
pd.set_option(‘display.max_columns‘, 20)
#设置最大显示行数
pd.set_option(‘display.max_rows‘, 100)
In [ ]:
# 婴儿信息表
baby = pd.read_csv(‘sam_tianchi_mum_baby.csv‘, encoding=‘utf-8‘)#默认将第一行作为表头(列标签),一般用utf-8编码
In [ ]:
baby.head(10)
In [ ]:
# 编码为gbk中文编码
# 订单数据
order = pd.read_csv(‘meal_order_info.csv‘,encoding = ‘gbk‘, dtype = {‘info_id‘:str,‘emp_id‘:str})
dtype用来改变数据类型
In [ ]:
order
In [ ]:
#交易表
baby_trade_history = pd.read_csv(‘baby_trade_history.csv‘, nrows=100) #n ro w s读取前100行
- 保存数据
In [ ]:
baby_trade_history.to_csv(‘a1.csv‘,encoding=‘utf-8‘,index=False)#建议用utf-8编码或者中文gbk编码,默认是utf-8编码,index=False表示不写出索引行
excel文件读写
In [ ]:
# 订单数据
df1 = pd.read_excel(‘meal_order_detail.xlsx‘,encoding = ‘utf-8‘,sheet_name = ‘meal_order_detail1‘)# 读取excel需要注明具体哪一个工作簿,否则就是第一个工作簿
In [ ]:
df1 = pd.read_excel(‘meal_order_detail.xlsx‘,encoding = ‘utf-8‘,sheet_name = 0)# sheet_name可以为数字,代表第几个工作簿
In [ ]:
#保存数据
In [ ]:
df1.to_excel(‘a1.xlsx‘,sheet_name=‘one‘,index=False)
数据库文件读写
In [107]:
#导入相关库
import pymysql
from sqlalchemy import create_engine
- 按实际情况依次填写MySQL的用户名、密码、IP地址、端口、数据库名
create_engine(‘mysql+pymysql://user:passward@IP:3306/test01‘)
- root 用户名
- passward --密码
- IP : 服务区IP(本地 的话就是localhost)
- 3306: 端口号
- test01 :数据库名称
In [108]:
# 建立连接
conn = create_engine(‘mysql+pymysql://root:ly200689081@localhost:3306/test01‘)
- conn = create_engine("mysql+pymysql://{}:{}@{}:{}/{}?charset=gbk".format(‘root‘, ‘ly200689081‘, ‘localhost‘, ‘3306‘, ‘test01‘))
In [114]:
# 读取数据
sql = ‘select * from meal_order_info‘ #选择数据库中表名称
df1 = pd.read_sql(sql,conn)
#df1 是个dataframe格式
In [116]:
# # # 函数
def query(table):
host = ‘localhost‘
user = ‘root‘
password = ‘ly200689081‘
database = ‘test01‘
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
In [117]:
df2 = query(‘appendix‘)
In [ ]:
数据保存
- df.to_sql(name, con=engine, if_exists=‘replace/append/fail‘,index=False)
- name是表名
- con是连接
- if_exists:表如果存在怎么处理 -- append:追加 -- replace:删除原表,建立新表再添加 -- fail:什么都不干
- index=False:不插入索引index
In [129]:
import os
os.chdir(r‘F:CSDN课程内容代码和数据‘)
In [130]:
df = pd.read_csv(‘baby_trade_history.csv‘)
In [131]:
try:
df.to_sql(‘testdf‘,con = conn, index= False,if_exists= ‘replace‘)
except:
print(‘error‘)
if_exists= ‘replace‘如果表存在就会覆盖
- Python是否能将数据写入数据库,很多时候取决于数据库的权限
In [ ]:
以上是关于数据清洗文件操作--csv txt文件读写excel文件读写数据库文件读写的主要内容,如果未能解决你的问题,请参考以下文章
100天精通Python(数据分析篇)——第56天:Pandas读写txt和csv文件(read_csvto_csv)