<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          讓Python運行SQL?Pandasql來搞定!

          共 2246字,需瀏覽 5分鐘

           ·

          2021-06-09 08:54

          來源:數(shù)據(jù)分析網(wǎng)

          關(guān)于 Python 的最喜歡的一件事是使用者獲得觀察 R 社區(qū)的好處,然后模擬其最好的部分。我相信一種語言和它的庫和工具一樣有用。


          這篇文章是關(guān)于pandasql,Yhat 寫的一個模擬 R 包 sqldf 的Python 庫。這是一個小而強大的庫,只有358行代碼。pandasql 的想法是讓 Python 運行 SQL。對于那些來自 SQL 背景或仍然「使用 SQL 思考」的人來說,pandasql是一種利用兩種語言優(yōu)勢的好方式。


          在本介紹中,將在為數(shù)據(jù)探索和分析構(gòu)建的集成開發(fā)環(huán)境(IDE) Rodeo 中用 pandasql 開始運行。Rodeo 是一個開源、完全免費的工具。如果你是 R 使用者,那么它與 RStudio 具有類似感覺的工具。到目前為止,Rodeo 只能運行 Python 代碼,但上周我們添加一些其他語言的語法高亮到編輯器(markdown,JSON,julia,SQL,markdown)。


          你可能已經(jīng)閱讀或猜到了,我們對 Rodeo 有很大的計劃,包括添加 SQL 支持,以便你可以在 Rodeo 內(nèi)運行 SQL 查詢,即使沒有我們的方便pandasql。


          01. 下載 Rodeo


          首先從 Yhat 網(wǎng)站上的 Rodeo 頁面下載 Rodeo for Mac,Windows 或 Linux。


          如果你好奇,一點背景

          在背后,pandasql 使用該 pandas.io.sql 模塊在DataFrame 和 SQLite 數(shù)據(jù)庫之間傳輸數(shù)據(jù)。操作用 SQL 執(zhí)行,返回結(jié)果,然后將數(shù)據(jù)庫拆除。此庫大量使用 pandas write_frame 和 frame_query 兩個功能,可以讓你讀取和寫入 pandas 任何 SQL 數(shù)據(jù)庫。


          02. 安裝 pandasql


          pandasql 使用 Rodeo 中的軟件包管理器進行安裝。只需搜索 pandasql 并單擊安裝包。



          如果你喜歡安裝這種方式,也可以從文本編輯器運行 ! pip install pandasql。


          03. 查看數(shù)據(jù)集


          pandasql 有兩個內(nèi)置的數(shù)據(jù)集,將用于下面的例子。

          meat:數(shù)據(jù)集來自美國農(nóng)業(yè)部,包含有關(guān)牲畜,乳制品和家禽前景和生產(chǎn)的指標
          births:數(shù)據(jù)集來自聯(lián)合國統(tǒng)計司,包含按月計算的活產(chǎn)嬰兒人口統(tǒng)計


          運行以下代碼查看數(shù)據(jù)集。



          在 Rodeo 里面,你真的不需要 print.variable.head() 語句,因為實際上你可以直接檢查 dataframe。



          04. 奇數(shù)圖




          請注意,繪圖將顯示在控制臺和繪圖選項卡(右下角的選項卡)中。


          提示:可以通過單擊窗格頂部的箭頭「彈出」你的繪圖。如果你正在使用多個顯示器,并希望對于數(shù)據(jù)可視化,專注于其中一個屏幕,那么這是非常方便的。



          05. 用法


          為了使這篇文章簡潔易讀,我們剛剛給出了代碼片段和下面大部分查詢的幾行結(jié)果。

          如果你在 Rodeo 中跟隨著,開始時候有會一些提示:

          • Run Script 確實會運行在文本編輯器中編寫的所有內(nèi)容

          • 你可以高亮顯示代碼塊,并通過單擊 Run Line 或按 Command + Enter 運行它

          • 你可以調(diào)整窗格大小(當我沒有繪制圖時,我縮小了右下角的窗格)



          06. 基礎(chǔ)


          寫一些 SQL,通過代替 DataFrames 表針對 pandas DataFrame,并執(zhí)行它。



          pandasql 創(chuàng)建數(shù)據(jù)庫、架構(gòu)、加載數(shù)據(jù)、并運行你的 SQL。


          07. 聚合


          pandasql 支持聚合??梢栽?group by 子句中使用別名列名或列號。



          locals() 與 globals()

          pandasql 需要在會話/環(huán)境中訪問其他變量。雖然當執(zhí)行 SQL 語句時,可以傳遞 locals() 給 pandasql,但是如果你運行了大量可能麻煩的查詢。為了避免一直傳遞給 locals,你可以將這個幫助函數(shù)添加到腳本中,來其設(shè)置 globals() 如下:



          08. 聯(lián)結(jié)


          你可以使用正常的 SQL 語法聯(lián)結(jié) dataframes。



          09. WHERE 條件


          這是一個 WHERE 字句。



          10. 這只是SQL


          由于 pandasql 由 SQLite3 提供支持,你可以用 SQL 中執(zhí)行大部分任務。以下是使用常見 SQL 功能(例如子查詢,排序分組,函數(shù)和聯(lián)合)的一些示例。





          最后的想法




          pandas 是一個難以置信的數(shù)據(jù)分析工具,因為它非常易于理解、簡潔明了、易表達。最終,有足夠充分的理由來學習的 merge,join,concatenate,melt 的細微差別和其他 pandas 特色的切片和切塊數(shù)據(jù)。查看文檔的一些例子。


          我們希望這 pandasql 對于 Python 和 pandas 新手將是一個有用的學習工具。在我自己學習 R 的個人經(jīng)驗中,sqldf 是一個熟悉的界面,可以幫助我盡快使用新工具來提高生產(chǎn)力。


          加入知識星球【我們談論數(shù)據(jù)科學】

          SQL必知必會打卡進行中,限時優(yōu)惠20元

          500+小伙伴一起學習!




          · 推薦閱讀 ·

          聊聊Pandas的前世今生

          在windows和linux上高效快捷地發(fā)布Dash應用

          超簡單,讓別人也能訪問到你的Dash應用


          瀏覽 49
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产AⅤ无码片毛片一级一区2 | 久久夜色精品国产亚洲AV动态 | 婷婷五月天小说 | 亚洲天堂网视频网站 | 影音先锋 一区二区 |