数据挖掘工具pandas(八)Pandas保存、读取外部数据

pandas保存、读取外部数据

1,pandas保存、读取csv文件
import numpy as np
import pandas as pd
import numpy as np
np.random.seed(4)
day_data = np.random.normal(0,1,(500,507))
day_data = np.round(day_data,1)
stock_list = ["股票"+ str(i) for i in range(day_data.shape[0])]
date = ["第"+ str(i)+"天" for i in range(day_data.shape[1])]
df = pd.DataFrame(day_data,index=stock_list,columns=date)

# 保存csv文件
# index-储存不会将索引值变成一列数据
# mode-'a'追加的方式;'w'覆盖的方式
# header-是否保存数据列索引
df.to_csv("./test.csv",columns=["第0天","第1天"],index=True,mode='w',header=True)

# 读取csv文件
# 指定某列来读取部分数据,其他用不到的就不读取了
df = pd.read_csv("./test.csv",usecols=["第0天"])
print(df)
2,hdf文件保存、读取数据
import numpy as np
import pandas as pd
import numpy as np
np.random.seed(4)
day_data = np.random.normal(0,1,(500,507))
day_data = np.round(day_data,1)
stock_list = ["股票"+ str(i) for i in range(day_data.shape[0])]
date = ["第"+ str(i)+"天" for i in range(day_data.shape[1])]
df = pd.DataFrame(day_data,index=stock_list,columns=date)

# 存储h5文件,key的作用为加快读取速速
df.to_hdf("./hdf1.h5",key="lalala")

# 读取h5文件
temp = pd.read_hdf("./hdf1.h5")
注意:
# 需要安装tables模块,避免不能读取hdf(h5)文件
pip install tables

# 一个h5文件可以放入多个key,来保存这种三维的结构
先选择hdf文件储存
  • hdf在储存的是支持压缩,使用的方式是blosc,这个是速度最快的也是pandas默认支持的。
  • 使用打算可以提升磁盘利用率,节省空间
  • hdf还是快平台的,可以轻松迁移到hadoop上面
3,pandas读取MongDB数据`
# coding=utf-8
import pandas as pd
from pymongo import MongoClient

client = MongoClient()
collection = client["douban"]["tv1"]
data = list(collection.find())

t1 = data[0]
t1 = pd.Series(ti)
print(t1)
4,pandas读取mysql数据
import pandas as pd
from sqlalchemy import create_engine

# 创建连接
engine = create_engine('mysql+pymysql://root:root@localhost:3306/yoyo')
sql = """select * from role_info;"""
# 读取连接数据
df = pd.read_sql_query(sql,engine)

print(df,type(df))

参考自:https://www.cnblogs.com/fuqia/p/8996033.html

实例: 
import pandas as pd
from sqlalchemy import create_engine

engine = create_engine('mysql+pymysql://root:root@localhost:3306/yoyo')
sql = """select * from book_management_signin;"""
df = pd.read_sql(sql,engine)

# pandas取行或者列的注意点
# 方括号写数组,表示取行,对行进行操作
# 方括号写字符串,表示取列索引,对列进行操作
df = df.sort_values(by="sign_number",ascending=False)
print(df[2:4] ,df['sign_present'],type(df['sign_present']))

在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章