欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Pandas常用的讀取和保存數(shù)據(jù)的函數(shù)使用(csv,mysql,json,excel)

 更新時(shí)間:2022年01月23日 09:56:24   作者:夏悠  
本文主要介紹了Pandas常用的讀取和保存數(shù)據(jù)的函數(shù)使用,主要包括csv,mysql,json,excel這幾種方式,具有一定的參考價(jià)值,感興趣的可以了解一下

pandas 是基于NumPy 的一種工具,該工具是為解決數(shù)據(jù)分析任務(wù)而創(chuàng)建的。Pandas 納入了大量庫(kù)和一些標(biāo)準(zhǔn)的數(shù)據(jù)模型,提供了高效地操作大型數(shù)據(jù)集所需的工具。Pandas的名稱(chēng)來(lái)自于面板數(shù)據(jù)(panel data)和python數(shù)據(jù)分析(data analysis)。pandas提供了大量能使我們快速便捷地處理數(shù)據(jù)的函數(shù)和方法。它是使Python成為強(qiáng)大而高效的數(shù)據(jù)分析環(huán)境的重要因素之一。
pandas的IO工具支持非常多的數(shù)據(jù)輸入輸出方式。包括csv、json、Excel、數(shù)據(jù)庫(kù)等。

本文通過(guò)幾個(gè)實(shí)例,介紹幾種常用的數(shù)據(jù)加載方式,包括從csv文件、excel文件、關(guān)系型數(shù)據(jù)庫(kù)如mysql、API接口加載json數(shù)據(jù),來(lái)初步體驗(yàn)一下pandas加載數(shù)據(jù)的便捷性。

涉及對(duì)象:

csv, mysql, json, excel

主要函數(shù):

  •  pd.read_csv()
  •  data.to_csv()
  •  pd.read_sql()
  •  data.to_sql()
  •  json.dump()
  •  json.loads()
  •  pd.read_excel()
  •  data.to_excel

做量化交易,總也離不開(kāi)對(duì)數(shù)據(jù)的處理和分析,以下是我經(jīng)常用到的一些讀取和保存數(shù)據(jù)的函數(shù)。

特意抽時(shí)間整理了一下,分享給大家。

import pandas as pd

# 解決數(shù)據(jù)輸出時(shí)列名不對(duì)齊的問(wèn)題
pd.set_option("display.unicode.east_asian_width", True)
# 顯示所有列,把行顯示設(shè)置成最大
pd.set_option("display.max_columns", None) ?# 顯示所有列
# 顯示所有行,把列顯示設(shè)置成最大
pd.set_option("display.max_rows", False) ?# 不顯示所有行
pd.set_option('display.width', 200) ?# 設(shè)置顯示的寬度

# 是否保存
# ----------------------------------------------------------------------------------------
store = False

# 讀取CSV文件
path = "O:/Database/futures_5m/ag8888_5m.csv"
data_csv = pd.read_csv(
? ? path, ?# 字符串:文件路徑或RRL鏈接
? ? header="infer", ?# 指定作為列名的行。默認(rèn)第一行。 不包含列名:header=None。
? ? names=None, ?# 修改列的名稱(chēng):參數(shù)為要使用的列名列表
? ? index_col=None, ?# 指定列為索引列
? ? usecols=None, ?# int、list ?[0, 1, 2, 3, 4] ['類(lèi)型', '數(shù)量', '成交價(jià)'] 或字符串。None:所有列;int:最后一列。
? ? dtype=None, ?# 字典:列的數(shù)據(jù)類(lèi)型。
? ? parse_dates=False, ?# 把某列解析為日期類(lèi)型
? ? nrows=None, ?# 需要讀取的行數(shù),int, default None,
)

# 保存csv文件
# ----------------------------------------------------------------------------------------
path2 = "O:/Database/futures_5m/store_test.csv"
if store:
? ? data_csv.to_csv(
? ? ? ? path2, ?# 絕對(duì)路徑+文件名?;蛭募?
? ? ? ? float_format="%.2f", ?# 格式化浮點(diǎn)數(shù)
? ? ? ? columns=None, ?# 列表,寫(xiě)入文件的列,默認(rèn)為None
? ? ? ? header=True, ?# 是否輸出列名,默認(rèn)True
? ? ? ? index=True, ?# 是否輸出索引,默認(rèn)True
? ? ? ? index_label=None, ?# 索引列的列名,列表,寫(xiě)入文件的列,默認(rèn)為None
? ? ? ? chunksize=1000, ?# 一次寫(xiě)入.csv文件的行數(shù)。數(shù)據(jù)很多時(shí),必須分批寫(xiě)入。
? ? ? ? date_format=None, ?# 日期輸出格式
? ? )

# 數(shù)據(jù)庫(kù)模塊
import mysql.connector
from sqlalchemy import create_engine
# 創(chuàng)建MySQL數(shù)據(jù)庫(kù)連接
""" connect = create_engine("數(shù)據(jù)庫(kù)類(lèi)型+數(shù)據(jù)庫(kù)驅(qū)動(dòng)://數(shù)據(jù)庫(kù)用戶(hù)名:數(shù)據(jù)庫(kù)密碼@IP地址:端口/數(shù)據(jù)庫(kù)名稱(chēng)", 其他參數(shù)) """
# ----------------------------------------------------------------------------------------------------
connect = create_engine("mysql+mysqlconnector://root:@localhost:3306/test")

# 讀取SQL文件
# ----------------------------------------------------------------------------------------

# 查詢(xún)語(yǔ)句
sql_query = "SELECT * FROM data2"

data_sql = pd.read_sql(
? ? sql_query, ?# SQL查詢(xún)語(yǔ)句:字符串格式 或 SQLAlchemy
? ? con=connect, ?# 創(chuàng)建的連接對(duì)象
? ? index_col="date", ?# 索引列:字符串或字符串列表,可選,默認(rèn)值:無(wú)
? ? coerce_float=True, ?# 將值強(qiáng)制轉(zhuǎn)為浮點(diǎn)數(shù):布爾值,默認(rèn)為T(mén)rue
? ? params=None, ?# list、tuple或dict,可選,默認(rèn)值:None。傳遞給execute方法的參數(shù)列表
? ? parse_dates=None, ?# 解釋為日期: 列的名稱(chēng)列表 或字典:{column_name: format string}
? ? columns=None, ?# 要從sql表中選擇的列,僅在讀取表格時(shí)使用
? ? chunksize=None, ?# 讀取的行數(shù)
)

# 保存SQL文件
# ----------------------------------------------------------------------------------------

if store:
? ? data.to_sql(
? ? ? ? name="store_test", ?# SQL輸出的表名
? ? ? ? con=connection, ?# 與read_sql中相同,數(shù)據(jù)庫(kù)鏈接
? ? ? ? index=False, ?# 是否將index作為單獨(dú)的一列
? ? ? ? index_label=None, ?# 指定列作為index輸出,此時(shí)index為T(mén)rue
? ? ? ? chunksize=None, ?# 設(shè)置整數(shù),如20000,一次寫(xiě)入數(shù)據(jù)時(shí)的數(shù)據(jù)行數(shù)量,當(dāng)數(shù)據(jù)量很大時(shí),需要設(shè)置,否則會(huì)鏈接超時(shí)寫(xiě)入失敗
? ? ? ? dtype=None, ?# 指定列的輸出到數(shù)據(jù)庫(kù)中的數(shù)據(jù)類(lèi)型。字典形式儲(chǔ)存:{column_name: sql_dtype}。 當(dāng)不設(shè)置時(shí),to_sql生成表時(shí)會(huì)自動(dòng)兼容最大的類(lèi)型
? ? ? ? if_exists="append",
? ? ) ?# Fail 拋出錯(cuò)誤; append 插入; replace 替換
? ? # ----------------------------------------------------------------------------------------------------------------------

# 保存為json文件
# ----------------------------------------------------------------------------------------
import json
# 把字典保存為json格式的文件
if store:
? ? with open('O:/我的回測(cè)/回測(cè)系統(tǒng) 重寫(xiě)數(shù)據(jù)模塊/回測(cè)結(jié)果保存/把字典保存為json格式的文件.json', 'w') as f:
? ? ? ? # 存在中文必須設(shè)置ensure_ascii=False
? ? ? ? results = {
? ? ? ? ? ? "合約": "bu8888",
? ? ? ? ? ? "頻率": "1m",
? ? ? ? ? ? "周期": 60,
? ? ? ? ? ? "本金": 50000,
? ? ? ? ? ? "收益": "-3506",
? ? ? ? ? ? "年化": "-44.51%",
? ? ? ? ? ? "期望": "-0.4R",
? ? ? ? ? ? "賠率": 0.82,
? ? ? ? ? ? "勝率": "33%",
? ? ? ? ? ? "次數(shù)": "6",
? ? ? ? ? ? "天數(shù)": 30,
? ? ? ? }
? ? ? ? # 將python中的對(duì)象轉(zhuǎn)化成json儲(chǔ)存到文件中
? ? ? ? """ -----------------------------------------------------------------------------------
? ? ? ? json.dump(obj=python對(duì)象,fp=write()方法的文件對(duì)象,indent=縮進(jìn)等級(jí),
? ? ? ? ? ? ? ? ? sort_keys=以鍵的順序排序,ensure_ascii=True:False輸出中文)
? ? ? ? ----------------------------------------------------------------------------------- ? """
? ? ? ? json.dump(results, f, sort_keys=False, indent=4, ensure_ascii=False)

# 讀取json格式的文件
# ----------------------------------------------------------------------------------------
with open('O:/我的回測(cè)/回測(cè)系統(tǒng) 重寫(xiě)數(shù)據(jù)模塊/回測(cè)結(jié)果保存/把字典保存為json格式的文件.json', 'r') as f1:
? ? # 直接讀取,返回字符串
? ? da = f1.read() ?# 此時(shí)數(shù)值仍是字符串,需要進(jìn)一步轉(zhuǎn)換
? ? # 轉(zhuǎn)為字典格式
? ? result = json.loads(da) ?# 轉(zhuǎn)為字典格式

# 讀取Excel文件
# ----------------------------------------------------------------------------------------
""" 注意坑:excel文件處于打開(kāi)或編輯狀態(tài)時(shí),會(huì)讀取出錯(cuò)和失?。。?"""
data_excel = pd.read_excel(
? ? 'H:/交易資料/Python文件/K線(xiàn)測(cè)試數(shù)據(jù).xlsx', ?# 文件名或路徑
? ? sheet_name=0, ?# 字符串或整型(或兩者的列表),表的名稱(chēng)
? ? header=0, ?# 整型或整型列表,或None,默認(rèn)為0,None代表無(wú)列名。
? ? names=None, ?# 字符串列表,自定義列名,默認(rèn)為None。
? ? index_col=None, ?# 整型或者整型列表
? ? usecols=None, ?# 表示要讀取的列號(hào)或列名(列表)。None表示全部讀取。當(dāng)為str時(shí)可以為“A,D,F:H”表示讀取A,D,F,G,H列。
? ? engine=None, ?# 讀取excel時(shí)用到的引擎類(lèi)型。
)

# ?保存Excel文件
# ?----------------------------------------------------------------------------------------
if store:
? ? data_excel.to_excel(
? ? ? ? 'H:/交易資料/Python文件/test.xlsx', ?# ?路徑或文件名
? ? ? ? sheet_name='K線(xiàn)測(cè)試數(shù)據(jù)', ?# ?表的名稱(chēng)
? ? ? ? index=False, ?# ?是否保存索引

到此這篇關(guān)于Pandas常用的讀取和保存數(shù)據(jù)的函數(shù)使用(csv,mysql,json,excel)的文章就介紹到這了,更多相關(guān)Pandas讀取和保存數(shù)據(jù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python集合類(lèi)型用法分析

    python集合類(lèi)型用法分析

    這篇文章主要介紹了python集合類(lèi)型用法,實(shí)例分析了Python中集合的功能及常見(jiàn)使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-04-04
  • Python?Pandas?修改表格數(shù)據(jù)類(lèi)型?DataFrame?列的順序案例

    Python?Pandas?修改表格數(shù)據(jù)類(lèi)型?DataFrame?列的順序案例

    這篇文章主要介紹了Python?Pandas?修改表格數(shù)據(jù)類(lèi)型?DataFrame?列的順序案例,文章通過(guò)主題展開(kāi)詳細(xì)的相關(guān)內(nèi)容,感興趣的小伙伴可以參考一下
    2022-08-08
  • Python利用capstone實(shí)現(xiàn)反匯編

    Python利用capstone實(shí)現(xiàn)反匯編

    Capstone是一個(gè)輕量級(jí)的多平臺(tái)、多架構(gòu)的反匯編框架,該模塊支持目前所有通用操作系統(tǒng),反匯編架構(gòu)幾乎全部支持。本文就將利用他實(shí)現(xiàn)反匯編,感興趣的可以了解下
    2022-04-04
  • python實(shí)現(xiàn)網(wǎng)站微信登錄的示例代碼

    python實(shí)現(xiàn)網(wǎng)站微信登錄的示例代碼

    這篇文章主要介紹了python實(shí)現(xiàn)網(wǎng)站微信登錄的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • Python?pandas中read_csv參數(shù)示例詳解

    Python?pandas中read_csv參數(shù)示例詳解

    使用pandas做數(shù)據(jù)處理的第一步就是讀取數(shù)據(jù),數(shù)據(jù)源可以來(lái)自于各種地方,csv文件便是其中之一,下面這篇文章主要給大家介紹了關(guān)于Python?pandas中read_csv參數(shù)詳解的相關(guān)資料,需要的朋友可以參考下
    2023-01-01
  • Python3 偽裝瀏覽器的方法示例

    Python3 偽裝瀏覽器的方法示例

    本篇文章主要介紹了Python3 偽裝瀏覽器的方法示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-11-11
  • python獲取域名ssl證書(shū)信息和到期時(shí)間

    python獲取域名ssl證書(shū)信息和到期時(shí)間

    這篇文章主要為大家詳細(xì)介紹了如何利用python實(shí)現(xiàn)獲取域名ssl證書(shū)信息和到期時(shí)間,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起了解一下
    2023-09-09
  • 跟老齊學(xué)Python之玩轉(zhuǎn)字符串(1)

    跟老齊學(xué)Python之玩轉(zhuǎn)字符串(1)

    本文主要講訴了字符串的定義,變量鏈接到字符串,以及對(duì)字符串的簡(jiǎn)單操作,都是些非?;A(chǔ)的東西,適合零基礎(chǔ)的Pythoner學(xué)習(xí),覺(jué)得有用的話(huà),多鼓鼓掌吧
    2014-09-09
  • Python實(shí)現(xiàn)非正太分布的異常值檢測(cè)方式

    Python實(shí)現(xiàn)非正太分布的異常值檢測(cè)方式

    今天小編就為大家分享一篇Python實(shí)現(xiàn)非正太分布的異常值檢測(cè)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-12-12
  • python 多進(jìn)程隊(duì)列數(shù)據(jù)處理詳解

    python 多進(jìn)程隊(duì)列數(shù)據(jù)處理詳解

    今天小編就為大家分享一篇python 多進(jìn)程隊(duì)列數(shù)據(jù)處理詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-12-12

最新評(píng)論