csv读写
使用read_csv读取,获取的是dataframe格式
读取csv,文件名称尽量英文
使用to_csv方法快速保存
df = pd.read_csv('meal_order_info.csv',encoding = ‘gbk’)
df = pd.read_csv('meal_order_info.csv',encoding = 'gbk’,nrows=10)
df.to_csv(‘df.csv’,index=False)
csv示例
import numpy as np
import pandas as pd
import os
os.getcwd()#获取文件路径
os.chdir(r'C:\Users\56281\Desktop\数据分析\Python数据清洗实战入门\数据清洗课程材料\代码和数据')#修改当前路径
baby=pd.read_csv('sam_tianchi_mum_baby.csv',encoding='utf-8')#读取文件
order=pd.read_csv('meal_order_info.csv',encoding='gbk')#utf8不行的话用gbk读取
order.info()#查看字段
order=pd.read_csv('meal_order_info.csv',encoding='gbk',dtype={'info_id':str,'emp_id':str})#修改字段数据类型
baby=pd.read_csv('baby_trade_history.csv',nrows=100)#只要100行数据
pd.set_option('display.max_columns',20)#设置最多可以显示的列20列
pd.set_option('display.max_rows',100)#设置最多可以显示的行 100行
baby.to_csv('a1.csv',index=False)#保存为csv文件,索引行不写入
excel读写
• 使用read_excel读取,读取后的结果为dataframe格式
• 读取excel文件和csv文件参数大致一样, 但要考虑工作表sheet页
• 参数较多,可以自行控制,但很多时候用默认参数
• 读取excel时,注意编码,常用编码为utf-8、gbk 、gbk2312和gb18030等
• 使用to_excel快速保存为xlsx格式(3种格式)
示例
df1=pd.read_excel('meal_order_detail.xlsx',encoding='utf-8',sheet_name='meal_order_detail1')#读取第一个工作表
df1=pd.read_excel('meal_order_detail.xlsx',encoding='utf-8',sheet_name=0)#读取第一个工作表
df1.to_excel('das.xlsx',index=False,sheet_name='one')#保存为工作表,命名为one
数据库文件读写
• 使用sqlalchemy建立连接
• 需要知道数据库的相关参数,如数据库IP地址、用户名和密码等
• 通过pandas中read_sql 函数读入, 读取完以后是dataframe格式
• 通过dataframe的to_sql方法保存
conn = create_engine(‘mysql+pymysql://user:passward@IP:3306/test01’)
• root: 用户名 • passward: 密码 • IP : 服务器IP,本地电脑用localhost
• 3306: 端口号 • test01 : 数据库名称
df.to_sql(name, con=engine, if_exists=‘replace/append/fail’,index=False)
• name是表名 • con是连接 • if_exists:表如果存在怎么处理。三个选项 append代表追加, replace代表删除原 表,建立新表,fail代表什么都不干 • index=False:不插入索引index
示例
import pandas as pd
import pymysql
from sqlalchemy import create_engine
conn=create_engine('mysql+pymysql://root:123456@localhost:3306/recommend')
sql='select * from mission'
df1=pd.read_sql(sql,con=conn)#sql语句转换为df表
def query(table):#数据库连接函数
host='localhost'
user='root'
password='123456'
database='recommend'
port=3306
conn=create_engine('mysql+pymysql://{}:{}@{}:{}/{}'.format(user,password,host,port,database))
sql='select * from '+table
result=pd.read_sql(sql,con=conn)
return result
df2=query('mission')
import os
os.chdir(r'C:\Users\56281\Desktop\数据分析\Python数据清洗实战入门\数据清洗课程材料\代码和数据')#更换路径
df=pd.read_csv('baby_trade_history.csv')#读取csv文件
df.to_sql('testdf',con=conn,index=False,if_exists='replace')#csv文件保存在数据库