Python数据分析基础之Pandas(三) 数据导入和导出-张柏沛IT博客

正文内容

Python数据分析基础之Pandas(三) 数据导入和导出

栏目:Python 发布时间:2019-12-06 15:16 浏览量:173

Pandas导入和导出数据的形式有文件(excel,csv,txt)和数据库(mysql),常用的载入函数有read_csv,read_excel,read_table和read_sql等。

 

数据的导入和导出也是依赖Pandas这个库的

 

1.mysql

DataFrame数据导入到mysql

from pandas import Series,DataFrame
import pandas as pd
import pymysql

db_conf = {
    "host":"127.0.0.1",
    "user":"root",
    "password":"自己的数据库密码",
    "database":"test",
    "cursorclass":pymysql.cursors.DictCursor,
    "charset":"utf8"
}

conn = pymysql.connect(**db_conf)

#法1
sql = "select * from proxy"

df = pd.read_sql(sql,conn)  #数据从数据库写入到变量
conn.close()

print(df.head())   #获取前5行


#法2
sql = "select * from proxy"

try:
    with conn.cursor() as cursor:
        res = cursor.execute(sql)
        data = cursor.fetchall()
finally:
    conn.close()


df=DataFrame(data)
print(df.head())

#法3
import sqlalchemy 
import pandas as pd 

engine = sqlalchemy.create_engine("mysql+pymysql://root:自己的数据库密码@127.0.0.1:3306/test")
df = pd.read_sql("lagou",engine)

print(df.head())

 

DataFrame导入到mysql

如果是导入数据库,那么不能用pymysql这个库,只能用sqlalchemy库

# coding = utf-8

from pandas import Series,DataFrame
import pandas as pd
import pymysql
from sqlalchemy import create_engine

db_conf = {
    "host":"127.0.0.1",
    "user":"root",
    "password":"自己的密码",
    "database":"test",
    "cursorclass":pymysql.cursors.DictCursor,
    "charset":"utf8"
}

conn = pymysql.connect(**db_conf)
cursor = conn.cursor()
sql = "select * from proxy"
df = pd.read_sql(sql,conn)

# print(df.head())
df2 = df.head()

engine = create_engine("mysql+pymysql://root:自己的密码@127.0.0.1:3306/test?charset=utf8")

#df2存入数据库
df2.to_sql(
    name="proxy2",    #要存入的表名
    con = engine,
    if_exists='append',
    index=False,
    index_label=False
)

 

PS:to_sql的if_exists参数

fail的意思如果表存在,啥也不做

replace的意思,如果表存在,删了表,再建立一个新表,把数据插入,相当于覆盖

append的意思,如果表存在,把数据插入,如果表不存在创建一个表,相当于新增

如果是由to_sql自动建表的话,那么他的表字段数字是bigInt型,字符串是text类型
所以如果想要字段是自己设置的字段类型,那么就自己建表吧

 

2. csv

导入:
df=DataFrame(...)
df.to_csv(文件路径,index)

其中index参数为False表示写入csv时没有行号,默认为True

导出:
df = pd.read_csv(路径,names=[列名1,列名2,列名3,...],sep="")
第二参表示只取指定列名,第三参是列的分隔符

 

3.Excel

导入:
to_excel(file,index=True,header=True)
index是是否写入行号
header是是否写入列名

导出:
read_excel(file,sheet_name,header=0)
sheetname是sheet的名称
header表示是否读取第一行作为列名,只能为0或者1

如果需要读取一个Excel的多个sheet的数据并且合并可以:
df = pd.read_excel(file,sheet_name=[0,2],skiprows=[0])

skiprows是读取的时候跳过第一行,就是列名

 

数据从TXT导出
df = pd.read_table(file,names=[列名1,列名2,...],sep="")

 

如果您需要转载,可以点击下方按钮可以进行复制粘贴;本站博客文章为原创,请转载时注明以下信息

张柏沛IT技术博客 > Python数据分析基础之Pandas(三) 数据导入和导出

热门推荐
推荐新闻