pandas读取数据库的函数可以是,pandas 保存数据
主要介绍熊猫中常用的读取和保存数据的函数,包括CSV、MySQL、JSON和Excel,有一定的参考价值。有兴趣的可以看看。
Pandas是一个基于NumPy的工具,它是为了解决数据分析任务而创建的。Pandas整合了大量的库和一些标准的数据模型,并提供了高效操作大型数据集所需的工具。熊猫的名字来源于面板数据和python数据分析。Pandas提供了大量的功能和方法,使我们能够快速方便地处理数据。这是使Python成为强大而高效的数据分析环境的重要因素之一。
熊猫IO工具支持许多数据输入和输出模式。包括csv、json、Excel、数据库等。
通过几个实例,介绍几种常用的数据加载方法,包括从csv文件、excel文件、mysql等关系数据库、API接口加载json数据,初步体验熊猫加载数据的便捷性。
涉及对象:
csv、mysql、json、excel
主要函数:
PD . read _ CSV()data . to _ CSV()PD . read _ SQL()data . to _ SQL()JSON . dump()JSON . loads()PD . read _ excel()data . to _ excel做量化交易,总是离不开数据的处理和分析。下面是我经常用的
我花时间整理了一下,分享给大家。
进口熊猫作为pd
#解决数据输出中列名不对齐的问题。
PD . set _ option( display . unicode . east _ Asian _ width ,True)
#显示所有列,将行显示设置为最大
PD . set _ option( display . max _ columns ,none) #显示所有列
#显示所有行,将列显示设置为最大
PD . set _ option( display . max _ rows ,false) #不显示所有行
Pd.set _ option (display.width ,200) #设置显示的宽度
#保存?
# -
store=False
#读取CSV文件
path= o :/Database/futures _ 5m/ag 8888 _ 5m . CSV
data_csv=pd.read_csv(
路径,#字符串:文件路径或RRL链接
Header=infer ,#将行指定为列名。默认首行。不包括列名:header=None。
Names=None,# Modify列名:该参数是要使用的列名列表。
Index_col=None,#指定该列是索引列
Usecols=None,# int,list [0,1,2,3,4] [type , quantity , transaction price]或string。None:所有列;Int:最后一列。
Dtype=None,# dictionary:列的数据类型。
Parse_dates=False,#将列解析为日期类型
Nrows=None,#要读取的行数,int,默认None,
)
#保存csv文件
# -
path 2= o :/Database/futures _ 5m/store _ test . CSV
如果存储:
data_csv.to_csv(
Path2,#绝对路径文件名。或文件名
Float_format=%.2f ,# format浮点数
Columns=None,# list,写入文件的列,默认值为None。
Header=True,#是否输出列名,默认为True
Index=True,#是否输出索引,默认为True
Index_label=None,#写入文件的索引列、列表、列的列名,默认值为None
Chunksize=1000,#写入。csv文件。很多时候,数据必须批量写入。
日期格式=无,#日期输入
出格式
)
# 数据库模块
import mysql.connector
from sqlalchemy import create_engine
# 创建MySQL数据库连接
""" connect = create_engine("数据库类型+数据库驱动://数据库用户名:数据库密码@IP地址:端口/数据库名称", 其他参数) """
# ----------------------------------------------------------------------------------------------------
connect = create_engine("mysql+mysqlconnector://root:@localhost:3306/test")
# 读取SQL文件
# ----------------------------------------------------------------------------------------
# 查询语句
sql_query = "SELECT * FROM data2"
data_sql = pd.read_sql(
sql_query, # SQL查询语句:字符串格式 或 SQLAlchemy
con=connect, # 创建的连接对象
index_col="date", # 索引列:字符串或字符串列表,可选,默认值:无
coerce_float=True, # 将值强制转为浮点数:布尔值,默认为True
params=None, # list、tuple或dict,可选,默认值:None。传递给execute方法的参数列表
parse_dates=None, # 解释为日期: 列的名称列表 或字典:{column_name: format string}
columns=None, # 要从sql表中选择的列,仅在读取表格时使用
chunksize=None, # 读取的行数
)
# 保存SQL文件
# ----------------------------------------------------------------------------------------
if store:
data.to_sql(
name="store_test", # SQL输出的表名
con=connection, # 与read_sql中相同,数据库链接
index=False, # 是否将index作为单独的一列
index_label=None, # 指定列作为index输出,此时index为True
chunksize=None, # 设置整数,如20000,一次写入数据时的数据行数量,当数据量很大时,需要设置,否则会链接超时写入失败
dtype=None, # 指定列的输出到数据库中的数据类型。字典形式储存:{column_name: sql_dtype}。 当不设置时,to_sql生成表时会自动兼容最大的类型
if_exists="append",
) # Fail 抛出错误; append 插入; replace 替换
# ----------------------------------------------------------------------------------------------------------------------
# 保存为json文件
# ----------------------------------------------------------------------------------------
import json
# 把字典保存为json格式的文件
if store:
with open(O:/我的回测/回测系统 重写数据模块/回测结果保存/把字典保存为json格式的文件.json, w) as f:
# 存在中文必须设置ensure_ascii=False
results = {
"合约": "bu8888",
"频率": "1m",
"周期": 60,
"本金": 50000,
"收益": "-3506",
"年化": "-44.51%",
"期望": "-0.4R",
"赔率": 0.82,
"胜率": "33%",
"次数": "6",
"天数": 30,
}
# 将python中的对象转化成json储存到文件中
""" -----------------------------------------------------------------------------------
json.dump(obj=python对象,fp=write()方法的文件对象,indent=缩进等级,
sort_keys=以键的顺序排序,ensure_ascii=True:False输出中文)
----------------------------------------------------------------------------------- """
json.dump(results, f, sort_keys=False, indent=4, ensure_ascii=False)
# 读取json格式的文件
# ----------------------------------------------------------------------------------------
with open(O:/我的回测/回测系统 重写数据模块/回测结果保存/把字典保存为json格式的文件.json, r) as f1:
# 直接读取,返回字符串
da = f1.read() # 此时数值仍是字符串,需要进一步转换
# 转为字典格式
result = json.loads(da) # 转为字典格式
# 读取Excel文件
# ----------------------------------------------------------------------------------------
""" 注意坑:excel文件处于打开或编辑状态时,会读取出错和失败!! """
data_excel = pd.read_excel(
H:/交易资料/Python文件/K线测试数据.xlsx, # 文件名或路径
sheet_name=0, # 字符串或整型(或两者的列表),表的名称
header=0, # 整型或整型列表,或None,默认为0,None代表无列名。
names=None, # 字符串列表,自定义列名,默认为None。
index_col=None, # 整型或者整型列表
usecols=None, # 表示要读取的列号或列名(列表)。None表示全部读取。当为str时可以为“A,D,F:H”表示读取A,D,F,G,H列。
engine=None, # 读取excel时用到的引擎类型。
)
# 保存Excel文件
# ----------------------------------------------------------------------------------------
if store:
data_excel.to_excel(
H:/交易资料/Python文件/test.xlsx, # 路径或文件名
sheet_name=K线测试数据, # 表的名称
index=False, # 是否保存索引
到此这篇关于Pandas常用的读取和保存数据的函数使用(csv,mysql,json,excel)的文章就介绍到这了,更多相关Pandas读取和保存数据内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。