<acronym id="pokdi"><strong id="pokdi"></strong></acronym>
      <acronym id="pokdi"><label id="pokdi"><xmp id="pokdi"></xmp></label></acronym>

      <td id="pokdi"><ruby id="pokdi"></ruby></td>
      <td id="pokdi"><option id="pokdi"></option></td>
      <td id="pokdi"></td>

        1. 教育裝備采購網
          第八屆圖書館論壇 校體購2

          【Stata專欄】Stata / Python集成第8部分:使用Stata函數接口將數據從Stata復制到Python

          教育裝備采購網 2021-04-09 08:46 圍觀2866次

          【Stata專欄】Stata / Python集成第8部分:使用Stata函數接口將數據從Stata復制到Python

            文 / Chuck Huber, Director of Statistical Outreach at StataCorp

            導讀

            ——————————————————————————————————————————————————————

            在作者以前的文章中,使用read_stata()方法將Stata數據集讀入pandas 數據框中。當您想將整個Stata數據集讀入Python時,這很好用。但是有時我們希望從Stata數據集中讀取變量或觀察值的子集,或同時讀取兩者。在本文中,作者將向您介紹Stata Function Interface(SFI)模塊,并向您展示如何使用它來將部分數據集讀入pandas數據框中。

            如果您不熟悉Python,那么在繼續閱讀之前,請閱讀作者的Stata / Python集成系列文章的前四篇文章可能會有所幫助。

          • 設置Stata以使用Python

          • 在Stata中使用Python的三種方法

          • 如何安裝Python套件

          • 如何使用Python套件

            使用SFI模塊將數據從Stata移至Python

            該SFI 是一個Python模塊,使您可以傳遞信息來回塔塔和Python之間。您可以復制整個或部分數據集,數據框,局部和全局宏,標量和矩陣,甚至全局Mata矩陣。一篇博客文章中沒有太多功能可以顯示給您。因此,今天我將向您展示您可能會使用的功能:將部分Stata數據集讀取到Python中。我們將在以后的文章中探索更多的SFI功能。

            讓我們通過使用自動數據集開始下面的代碼塊。接下來,讓我們進入Python環境并從SFI模塊導入Data類。然后,我們將使用Data類中的get()方法將外部變量復制到名為dataraw的Python列表對象中。get()方法的第1個參數是放在單引號中的Stata變量列表。

          【Stata專欄】Stata / Python集成第8部分:使用Stata函數接口將數據從Stata復制到Python

            Python輸出向我們顯示,列表對象dataraw包含Stata變量foreign的數據。

          【Stata專欄】Stata / Python集成第8部分:使用Stata函數接口將數據從Stata復制到Python

            指定觀察范圍

            get()方法的第二個參數允許我們指定觀察范圍。我在下面的代碼塊中使用range()函數來指定觀察值46到56。請注意,我還將mpgrep78添加到了變量列表中。

          【Stata專欄】Stata / Python集成第8部分:使用Stata函數接口將數據從Stata復制到Python

            Python輸出顯示dataraw僅包含mpg小于20的觀察值。

          【Stata專欄】Stata / Python集成第8部分:使用Stata函數接口將數據從Stata復制到Python

            獲取價值標簽而不是數字

            在Stata變量的值國外標有“Domestic”0“foreign”1。

          【Stata專欄】Stata / Python集成第8部分:使用Stata函數接口將數據從Stata復制到Python

            我們的Python列表對象dataraw僅存儲基礎數字值0和1,但我們可能更喜歡使用標簽。get()的第四個參數允許我們將Stata變量的值標簽傳遞給Python,而不是數字。我在下面的代碼塊中指定了valuelabel = True,以將值標簽傳遞給Python。

          【Stata專欄】Stata / Python集成第8部分:使用Stata函數接口將數據從Stata復制到Python

            下面的Python輸出向我們展示了dataraw現在包含單詞“ Domestic”和“ Foreign”。請注意,這些是字符串,而不是帶標簽的數字值。

          【Stata專欄】Stata / Python集成第8部分:使用Stata函數接口將數據從Stata復制到Python

            為缺失值指定一個數字

            get()的第五個參數允許我們為丟失的數據指定一個值?;叵胍幌?,Stata將缺失值存儲為數字存儲類型的zui大可能值。Stata變量rep78作為雙精度數字變量存儲,zui大值為8.98846567431158e + 307。浮點數值變量的zui大值為1.70141173319e + 38,長變量的zui大值為2,147,483,620,int變量的zuida值為32,740,字節變量的zui大值為100。因此,a的精確值缺失值取決于變量的存儲類型。

            Python不會將這些數字識別為缺失值。Python將8.98846567431158e + 307解釋為數字。Python中缺少的數字值通常用Numpy的特殊浮點值“ nan”表示,該值zui初是由電氣和電子工程師協會在IEEE 754-1985標準中定義的。通過為get()的第五個參數指定missingval = np.nan,我們可以告訴Python 8.98846567431158e + 307不是“數字”(nan)。

          【Stata專欄】Stata / Python集成第8部分:使用Stata函數接口將數據從Stata復制到Python

            Python的輸出下面顯示了數8.98846567431158e + 307dataraw已被替換numpy的特殊浮點值“nan”。

          【Stata專欄】Stata / Python集成第8部分:使用Stata函數接口將數據從Stata復制到Python

            將列表對象轉換為pandas數據框

            我們已經使用get()將我們的Stata數據集的一部分復制到名為dataraw的Python列表對象中。接下來,讓我們將列表對象轉換為pandas數據框。

            我們首先使用別名pd導入pandas。然后,我們可以通過鍵入dataframe = pd.DataFrame(dataraw)來創建一個數據框架。

          【Stata專欄】Stata / Python集成第8部分:使用Stata函數接口將數據從Stata復制到Python

            下面的Python輸出顯示數據框dataframe。標記為0、1和2的列分別是變量foreign,mpgrep78。左側的未標記列是pandas創建的索引,用于唯1標識每一行。

          【Stata專欄】Stata / Python集成第8部分:使用Stata函數接口將數據從Stata復制到Python

            標記數據框的列

            我們可以使用DataFrame()方法中的columns選項標記數據框的列。列名列表必須用方括號括起來,并且每個列名都必須用單引號括起來并用逗號分隔。

          【Stata專欄】Stata / Python集成第8部分:使用Stata函數接口將數據從Stata復制到Python

            下面的Python輸出顯示,數據框中的第二,第三和第四列現在分別命名為foreign,mpgrep78。

          【Stata專欄】Stata / Python集成第8部分:使用Stata函數接口將數據從Stata復制到Python

          【Stata專欄】Stata / Python集成第8部分:使用Stata函數接口將數據從Stata復制到Python

            從1開始數據幀索引

            Python使用從零開始的數組索引,這意味著行數和列數以0而不是1開頭。因此,pandas自動創建了以0開頭的行索引。如果您對索引的開頭感到滿意,則可以跳到下一部分?;蛘?,您可以使用DataFrame()方法中的index選項將索引更改為以1開頭。

            我們將在Numpy模塊中使用arange()方法指定索引。第1個參數是行索引的第1個元素,即1。第二個參數是行索引的Zui后一個元素。我們可以簡單地鍵入6,因為在我們的數據框中有6行。但是,下一次我們運行代碼時,此數字可能會更改。我們可以使用len()方法來計算列表對象dataraw的長度。而且我們必須在dataraw的長度上加1,因為Python從0開始計數。

          【Stata專欄】Stata / Python集成第8部分:使用Stata函數接口將數據從Stata復制到Python

            下面的Python輸出向我們顯示,數據幀的索引現在從1開始,以6結尾。

          【Stata專欄】Stata / Python集成第8部分:使用Stata函數接口將數據從Stata復制到Python

            使用getAsDict()

            您還可以使用getAsDict()將Stata數據復制到Python字典中。參數與get()相同,并且生成的字典包含Stata變量的名稱。這意味著在將字典轉換為數據框時,我們不必命名列。創建以1開頭的數據幀索引的方法有所不同,因為字典的長度不是Stata觀測值的數量。在下面的代碼塊中,我將obs定義為字典dataraw中值列表的長度。我使用了next()iter()函數來遍歷字典dataraw中的值。我又加了1,因為Python從0開始計數。

          【Stata專欄】Stata / Python集成第8部分:使用Stata函數接口將數據從Stata復制到Python

            下面的Python輸出顯示,生成的數據框看起來非常類似于我們使用get()創建的數據框。

          【Stata專欄】Stata / Python集成第8部分:使用Stata函數接口將數據從Stata復制到Python

            只是基礎

            也許您不希望限制樣本,也不介意從零開始的索引。您只想將變量集合復制到Python中的pandas數據框中。下面的代碼塊將執行此操作,并將Stata缺失值轉換為Python缺失值。

          【Stata專欄】Stata / Python集成第8部分:使用Stata函數接口將數據從Stata復制到Python

            下面的輸出顯示數據框dataframe,它準備好進行圖形化或數據分析。

          【Stata專欄】Stata / Python集成第8部分:使用Stata函數接口將數據從Stata復制到Python

            結論

            我們做到了!我們使用SFI模塊的Data類中的get()getAsDict()方法將Stata數據集的一部分復制到Python數據框中。我們甚至考慮了丟失的數據。每當我們想將Python合并到我們的數據管理,分析或報告中時,都可以在我們的do文件,ado文件和Python腳本中輕松使用get()getAsDict()。下次,我將向您展示如何使用SFI將數據從Python復制到Stata數據集中。

          【Stata專欄】Stata / Python集成第8部分:使用Stata函數接口將數據從Stata復制到Python

            為了幫助大家更好的了解Stata軟件,特開放試用申請,請自動識別上方二維碼,并確保申請信息的正確性,其中 * 號為必填項,我們將通過您提交的電子郵箱地址發送許可信息,感謝您的支持。

            Stata 軟件訂購

            北京友萬信息科技有限公司作為Stata軟件在中國大陸的授權經銷商及合作伙伴,希望能給Stata中國用戶提供更多服務與支持,并幫助中國用戶建立完善的軟件售后服務體系。如需Stata V16新版本采購及老版本更新升級請聯系我們,感謝您的支持與關注。手機/微信:18610597626 郵箱: crystal@uone-tech.cn

          【Stata專欄】Stata / Python集成第8部分:使用Stata函數接口將數據從Stata復制到Python

            專注分享商業數據分析、金融數據分析、應用統計分析、知識圖譜、機器學習、計量經濟、人工智能、網絡爬蟲、自動化報告與可重復研究等熱門技術內容。定向培養Stata、Python、R語言數據人才,助力產學研政企商協同發展,為中國大數據產業蓄能。合作熱線:010-56451129 郵箱:info@uone-tech.cn。

          點擊進入北京友萬信息科技有限公司展臺查看更多 來源:教育裝備采購網 作者:北京友萬信息科技有限公司 責任編輯:逯紅棟 我要投稿
          校體購終極頁

          相關閱讀

          版權與免責聲明:

          ① 凡本網注明"來源:教育裝備采購網"的所有作品,版權均屬于教育裝備采購網,未經本網授權不得轉載、摘編或利用其它方式使用。已獲本網授權的作品,應在授權范圍內使用,并注明"來源:教育裝備采購網"。違者本網將追究相關法律責任。

          ② 本網凡注明"來源:XXX(非本網)"的作品,均轉載自其它媒體,轉載目的在于傳遞更多信息,并不代表本網贊同其觀點和對其真實性負責,且不承擔此類作品侵權行為的直接責任及連帶責任。如其他媒體、網站或個人從本網下載使用,必須保留本網注明的"稿件來源",并自負版權等法律責任。

          ③ 如涉及作品內容、版權等問題,請在作品發表之日起兩周內與本網聯系,否則視為放棄相關權利。

          校體購產品
          99久久国产自偷自偷免费一区|91久久精品无码一区|国语自产精品视频在线区|伊人久久大香线蕉av综合

            <acronym id="pokdi"><strong id="pokdi"></strong></acronym>
              <acronym id="pokdi"><label id="pokdi"><xmp id="pokdi"></xmp></label></acronym>

              <td id="pokdi"><ruby id="pokdi"></ruby></td>
              <td id="pokdi"><option id="pokdi"></option></td>
              <td id="pokdi"></td>