精品伊人久久大香线蕉,开心久久婷婷综合中文字幕,杏田冲梨,人妻无码aⅴ不卡中文字幕

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
Python與Stata在數據處理區別

來源:Pandas中文網

本節旨在演示如何在 pandas 中做各種類似Stata的操作。 

按照慣例,我們按如下方式導入 pandas 和 NumPy:

# 計量經濟學服務中心import pandas as pdimport numpy as np

在Python教程中,DataFrame將通過調用顯示pandas df.head(),它將顯示該行的前N行(默認為5行)DataFrame。

這通常用于交互式工作(例如Jupyter筆記本或終端),而Stata中的等價物將是:list in 1/5

1、數據結構

一般術語對照表

DataFrame/ Series 

pandas 中的 DataFrame 類似于 Stata 數據集-具有不同類型的標記列的二維數據源。如本文所示,幾乎任何可以應用于Stata中的數據集的操作也可以在 pandas 中完成。

Series 是表示DataFrame的一列的數據結構。Stata 對于單個列沒有單獨的數據結構,但是通常,使用 Series 類似于引用Stata中的數據集的列。 

Index

每個 DataFrame 和 Series 在數據 行 上都有一個叫 Index-label 的標簽。在 Stata 中沒有相似的概念。

在Stata中,數據集的行基本上是無標簽的,除了可以用 _n 訪問的隱式整數索引。在pandas中,如果未指定索引,則默認情況下也使用整數索引(第一行= 0,第二行= 1,依此類推)。雖然使用標記Index或 MultiIndex可以啟用復雜的分析,并且最終是 pandas 理解的重要部分,但是對于這種比較,我們基本上會忽略它, Index并且只是將其DataFrame視為列的集合。

2、數據輸入/輸出

從價值觀構建數據幀

通過將數據放在input語句之后并指定列名,可以從指定值構建Stata數據集。

# 計量經濟學服務中心input x y1 23 45 6end

pandas 的 DataFrame 可以用許多不同的方式構建,但對于少量的值,通常可以方便地將其指定為Python字典,其中鍵是列名,值是數據。

3、讀取外部數據

與Stata一樣,pandas提供了從多種格式讀取數據的實用程序。

Stata提供將csv數據讀入內存中的數據集。如果文件在當前工作目錄中,我們可以按如下方式導入它。import delimited````tips.csv

import delimited tips.csv

pandas 方法是read_csv()類似的。此外,如果提供了網址,它將自動下載數據集。

比如,可以使用許多參數來指定數據應該如何解析。例如,如果數據是由制表符分隔的,沒有列名,并且存在于當前工作目錄中,則pandas命令將為:import delimitedread_csv()

tips = pd.read_csv('tips.csv', sep='\t', header=None)# alternatively, read_table is an alias to read_csv with tab delimitertips = pd.read_table('tips.csv', header=None)

pandas 還可以用于 .dta 的文件格式中。使用read_stata()函數讀取格式的Stata數據集。

df = pd.read_stata('data.dta')

除了text / csv和Stata文件之外,pandas還支持各種其他數據格式,如Excel,SAS,HDF5,Parquet和SQL數據庫。這些都是通過pd.read_* 函數讀取的。

4、導出數據

stata 中 import delimated 的反向操作是 export delimated

export delimited tips2.csv

類似地,在 pandas 中,read_csv 的反向操作是DataFrame.to_csv()

tips.to_csv('tips2.csv')

pandas 還可以使用DataFrame.to_stata()方法導出為Stata文件格式。

tips.to_stata('tips2.dta')

5、數據操作

列上的操作

在Stata中,任意數學表達式可以與新列或現有列上的generate和 replace命令一起使用。該drop命令從數據集中刪除列。

replace total_bill = total_bill - 2generate new_bill = total_bill / 2drop new_bill

pandas 通過指定個體提供了類似的矢量化操作SeriesDataFrame。可以以相同的方式分配新列。該DataFrame.drop()方法從中刪除一列DataFrame


過濾

在Stata中過濾是通過 if 一個或多個列上的子句完成的。

list if total_bill > 10

DataFrame可以通過多種方式進行過濾; 最直觀的是使用 布爾索引

tips[tips['total_bill'] > 10].head()

如果/那么邏輯

在Stata中,if子句也可用于創建新列。

generate bucket = 'low' if total_bill < 10replace bucket = 'high' if total_bill >= 10

使用 numpy 的 where 方法可以在 pandas 中完成相同的操作。

tips['bucket'] = np.where(tips['total_bill'] < 10, 'low', 'high')tips.head()
Out:  total_bill tip sex smoker day time size bucket0 14.99 1.01 Female No Sun Dinner 2 high1 8.34 1.66 Male No Sun Dinner 3 low2 19.01 3.50 Male No Sun Dinner 3 high3 21.68 3.31 Male No Sun Dinner 2 high4 22.59 3.61 Female No Sun Dinner 4 high

列的選擇

Stata 提供了選擇,刪除和重命名列的關鍵字。

keep sex total_bill tipdrop sexrename total_bill total_bill_2

按值排序

Stata中的排序是通過 sort

sort sex total_bill

pandas 對象有一個DataFrame.sort_values()方法,它采用列表進行排序。

tips = tips.sort_values(['sex', 'total_bill'])tips.head()
total_bill tip sex smoker day time size67 1.07 1.00 Female Yes Sat Dinner 192 3.75 1.00 Female Yes Fri Dinner 2111 5.25 1.00 Female No Sat Dinner 1145 6.35 1.50 Female No Thur Lunch 2135 6.51 1.25 Female No Thur Lunch 2
本站僅提供存儲服務,所有內容均由用戶發布,如發現有害或侵權內容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
學習|快速入門Pandas
【Python實戰】Pandas:讓你像寫SQL一樣做數據分析(一)
Python中的結構化數據分析利器
用pandas進行數據分析實戰
Pandas是數據分析必須要學的庫!這是我見過最詳細最牛逼的教程! | 易學教程
用一個月整理的Pandas的教程!最全面的教程沒有之一!先收藏吧!
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯系客服!

聯系客服

主站蜘蛛池模板: 湖南省| 永寿县| 大安市| 沈丘县| 攀枝花市| 凤翔县| 青冈县| 鄢陵县| 娄底市| 湘乡市| 台前县| 宣化县| 屏东市| 安新县| 会理县| 隆安县| 闽清县| 通道| 株洲市| 崇文区| 革吉县| 福安市| 康保县| 景德镇市| 东乡族自治县| 景宁| 双牌县| 门源| 巩义市| 壤塘县| 高尔夫| 宜黄县| 武胜县| 湟中县| 千阳县| 石嘴山市| 东乌珠穆沁旗| 新和县| 修文县| 德昌县| 华蓥市|