導航:首頁 > 編程語言 > python擴展庫pandas的使用案例

python擴展庫pandas的使用案例

發布時間:2022-05-26 02:56:10

⑴ 怎麼利用pandas做數據分析

Pandas是python下一個開源數據分析的庫,它提供的數據結構DataFrame極大的簡化了數據分析過程中一些繁瑣操作。
1. 基本使用:創建DataFrame. DataFrame是一張二維的表,大家可以把它想像成一張Excel表單或者Sql表。Excel 2007及其以後的版本的最大行數是1048576,最大列數是16384,超過這個規模的數據Excel就會彈出個框框「此文本包含多行文本,無法放置在一個工作表中」。Pandas處理上千萬的數據是易如反掌的sh事情,同時隨後我們也將看到它比SQL有更強的表達能力,可以做很多復雜的操作,要寫的code也更少。
說了一大堆它的好處,要實際感觸還得動手碼代碼。首要的任務就是創建一個DataFrame,它有幾種創建方式:
(1)列表,序列(pandas.Series), numpy.ndarray的字典
二維numpy.ndarray
別的DataFrame
結構化的記錄(structured arrays)
(2)其中,二維ndarray創建DataFrame,代碼敲得最少:
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randn(10, 4))
df
0 1 2 3
0 0.927474 0.127571 1.655908 0.570818
1 -0.425084 -0.382933 0.468073 -0.862898
2 -1.602712 -0.225793 -0.688641 1.167477
3 -1.771992 -0.692575 -0.693494 -1.063697
4 -0.456724 0.371165 1.883742 -0.344189
5 1.024734 0.647224 1.134449 0.266797
6 1.247507 0.114464 2.271932 -0.682767
7 -0.190627 -0.096997 -0.204778 -0.440155
8 -0.471289 -1.025644 -0.741181 -1.707240
9 -0.172242 0.702187 -1.138795 -0.112005
(3)通過describe方法,可以對df中的數據有個大概的了解:
df.describe()
0 1 2 3
count 10.000000 10.000000 10.000000 10.000000
mean -0.189096 -0.046133 0.394722 -0.320786
std 1.027134 0.557420 1.258019 0.837497
min -1.771992 -1.025644 -1.138795 -1.707240
25% -0.467648 -0.343648 -0.692281 -0.817865
50% -0.307856 0.008734 0.131648 -0.392172
75% 0.652545 0.310266 1.525543 0.172096
max 1.247507 0.702187 2.271932 1.167477
2. 改變cell。
3. group by。
4. 讀寫文件。

⑵ 新手關於python中pandas函數的使用

利用Python的pandas數據結構來讀取excel表格的數據,部分代碼如下:

#-*- coding:utf-8 -*-
import pandas as pd
import matplotlib.pyplot as plt

catering_data="catering_sale.xls"
data=pd.read_excel(catering_data,index_col=u'日期')
#讀取數據,指定"日期"列為索引列

大多數書上都是這樣寫的,但是在Python2.7上運行時出現錯誤。(沒有在Python3.x版本試過)
出現了如下問題:
這里寫圖片描述
使用help(pd.read_excel)發現參數中有必選參數sheetname,加入到函數中,代碼如下:

#-*- coding:utf-8 -*-
import pandas as pd
import matplotlib.pyplot as plt

catering_data="catering_sale.xls"
data=pd.read_excel(catering_data,sheetname=0,index_col=u'日期')

運行成功。
sheetname=0 的意思是:讀取xls文件中的第一個表格。(假設文件中有很多個表格)
另外,也可以將文件轉換成csv格式,就不需要這個參數了。代碼如下:

catering_data="catering_sale.csv"
data=pd.read_csv(catering_data)

⑶ python pandas怎麼用

需要安裝的軟體,步驟如下:下載setuptools,注意對應Python的版本,完成後運行exe即可完成安裝pippip-1.4.1.tar.gz安裝pip3.1解壓pip-1.4.1.tar.gz3.2運行CMD,進入命令行3.3用CD命令進入pip解壓目錄3.4輸入"pythonsetup.pyinstall"3.5添加環境變數path=C:\Python26\ArcGIS10.0\Scripts驗證是否安裝成功,運行CMD,進入命令行,輸入pip;如果出現pip的用法介紹,說明安裝成功。進入命令行,輸入"pipinstallpackage",package為安裝包名稱,就可以隨意使用了。

⑷ python pandas 高效的分析兩列數據,並生成結果到三列。

首先,為了以後在處理大量數據的效率,一定要養成【不】使用循環的方式處理pandas或者numpy數據的習慣, 最好使用包內置的方法或者被重載過的通用方法來實現。以前剛接觸pandas的時候,處理10W+的是數據的時候,用循環處理,等了半天都沒有結果。
對於你的代碼,發現雖然有if了, 但卻沒有else哈,也就是說你只考慮到匹配的情況下的邏輯, 但對於沒匹配的處理卻沒有寫出來。

⑸ python(pandas模塊)

1.什麼是pandas? numpy模塊和pandas模塊都是用於處理數據的模塊。 numpy主要用於針對數組進行統計計算,處理數字數據比較方便。 pandas除了可以處理數字數據,還可...

⑹ 怎麼使用Python中Pandas庫Resample,實現重采樣,完成線性插值

#python中的pandas庫主要有DataFrame和Series類(面向對象的的語言更願意叫類) DataFrame也就是
#數據框(主要是借鑒R裡面的data.frame),Series也就是序列 ,pandas底層是c寫的 性能很棒,有大神
#做過測試 處理億級別的數據沒問題,起性能可以跟同等配置的sas媲美
#DataFrame索引 df.loc是標簽選取操作,df.iloc是位置切片操作
print(df[['row_names','Rape']])
df['行標簽']
df.loc[行標簽,列標簽]
print(df.loc[0:2,['Rape','Murder']])
df.iloc[行位置,列位置]
df.iloc[1,1]#選取第二行,第二列的值,返回的為單個值
df.iloc[0,2],:]#選取第一行及第三行的數據
df.iloc[0:2,:]#選取第一行到第三行(不包含)的數據
df.iloc[:,1]#選取所有記錄的第一列的值,返回的為一個Series
df.iloc[1,:]#選取第一行數據,返回的為一個Series
print(df.ix[1,1]) # 更廣義的切片方式是使用.ix,它自動根據你給到的索引類型判斷是使用位置還是標簽進行切片
print(df.ix[0:2])
#DataFrame根據條件選取子集 類似於sas裡面if、where ,R裡面的subset之類的函數
df[df.Murder>13]
df[(df.Murder>10)&(df.Rape>30)]
df[df.sex==u'男']
#重命名 相當於sas裡面的rename R軟體中reshape包的中的rename
df.rename(columns={'A':'A_rename'})
df.rename(index={1:'other'})
#刪除列 相當於sas中的drop R軟體中的test['col']<-null
df.drop(['a','b'],axis=1) or del df[['a','b']]
#排序 相當於sas裡面的sort R軟體裡面的df[order(x),]
df.sort(columns='C') #行排序 y軸上
df.sort(axis=1) #各個列之間位置排序 x軸上
#數據描述 相當於sas中proc menas R軟體裡面的summary
df.describe()
#生成新的一列 跟R裡面有點類似
df['new_columns']=df['columns']
df.insert(1,'new_columns',df['B']) #效率最高
df.join(Series(df['columns'],name='new_columns'))
#列上面的追加 相當於sas中的append R裡面cbind()
df.append(df1,ignore_index=True)
pd.concat([df,df1],ignore_index=True)
#最經典的join 跟sas和R裡面的merge類似 跟sql裡面的各種join對照
merge()
#刪除重行 跟sas裡面nokey R裡面的which(!plicated(df[])類似
df.drop_plicated()
#獲取最大值 最小值的位置 有點類似矩陣裡面的方法
df.idxmin(axis=0 ) df.idxmax(axis=1) 0和1有什麼不同 自己摸索去
#讀取外部數據跟sas的proc import R裡面的read.csv等類似
read_excel() read_csv() read_hdf5() 等
與之相反的是df.to_excel() df.to_ecv()
#缺失值處理 個人覺得pandas中缺失值處理比sas和R方便多了
df.fillna(9999) #用9999填充
#鏈接資料庫 不多說 pandas裡面主要用 MySQLdb
import MySQLdb
conn=MySQLdb.connect(host="localhost",user="root",passwd="",db="mysql",use_unicode=True,charset="utf8")
read_sql() #很經典
#寫數據進資料庫
df.to_sql('hbase_visit',con, flavor="mysql", if_exists='replace', index=False)
#groupby 跟sas裡面的中的by R軟體中dplyr包中的group_by sql裡面的group by功能是一樣的 這里不多說
#求啞變數
miper=pd.get_mmies(df['key'])
df['key'].join(mpier)
#透視表 和交叉表 跟sas裡面的proc freq步類似 R裡面的aggrate和cast函數類似
pd.pivot_table()
pd.crosstab()
#聚合函數經常跟group by一起組合用
df.groupby('sex').agg({'height':['mean','sum'],'weight':['count','min']})

#數據查詢過濾

test.query("0.2
將STK_ID中的值過濾出來
stk_list = ['600809','600141','600329']中的全部記錄過濾出來,命令是:rpt[rpt['STK_ID'].isin(stk_list)].
將dataframe中,某列進行清洗的命令
刪除換行符:misc['proct_desc'] = misc['proct_desc'].str.replace('\n', '')
刪除字元串前後空格:df["Make"] = df["Make"].map(str.strip)
如果用模糊匹配的話,命令是:
rpt[rpt['STK_ID'].str.contains(r'^600[0-9]{3}$')]

對dataframe中元素,進行類型轉換

df['2nd'] = df['2nd'].str.replace(',','').astype(int) df['CTR'] = df['CTR'].str.replace('%','').astype(np.float64)

#時間變換 主要依賴於datemie 和time兩個包
http://www.2cto.com/kf/201401/276088.html
#其他的一些技巧
df2[df2['A'].map(lambda x:x.startswith('61'))] #篩選出以61開頭的數據
df2["Author"].str.replace("<.+>", "").head() #replace("<.+>", "")表示將字元串中以」<」開頭;以」>」結束的任意子串替換為空字元串
commits = df2["Name"].head(15)
print commits.unique(), len(commits.unique()) #獲的NAME的不同個數,類似於sql裡面count(distinct name)
#pandas中最核心 最經典的函數apply map applymap

⑺ 如何系統地學習Python 中 matplotlib,numpy,scipy,pandas

Python 可以由一系列的平台支持。它編譯完備的格式可以在 Windows 和 MacOS 及其自身 Tk 擴充平台上運行,並可用於開發對用戶友好的界面。在 UNIX 和其它平台上, Python 可以作為源代碼由程序員自行編譯,或者與其它預編的二進制編碼共同使用。它超強的適應性更能讓它有跨平台適用的能力:用它在 UNIX 平台上書寫的程序段95%的情況下無須作任何修改就可用於 Mac 和 PC 機。擴充 Tk 平台對它的支持,甚至可以讓基於GUI 格式的應用程序不用大動筋骨就可在上述三種平台上做自由切換,還保持著統一的界面。 正因為這種天然生就的跨平台運行能力,Python 還能支持一些平台的擴充平台,從而簡化和免除了對其它語言和環境的適應過程。與 SunOS / Solaris 工具帶有 Sun 音頻設備及 SGI版本帶有視音頻介面(包括 OpenGL)一樣,Windows Pytyon 解釋器也同樣帶有 Visual C++ 類庫和 Windows 音頻驅動介面。此外還有與 COM 對象進行通訊的功能。 超大的功能性 Python 幾乎無所不能。它的內核很小,但卻擁有足夠的基本程序塊用於設計大部分應用軟體。而且在某些情況下該程序語言還可以擴充與 C,C++ 和 Java 語言並用,因此沒有它編不了的程序。 Python 解釋器還帶有極為強大的補充模塊庫,用於擴充語言能力,進行網路通訊、文本處理和規則表達式匹配。 雖然 Python 的主要特點是隱去程序員的許多低級復雜工作,它還能支持鉤、擴充程序以及其它功能對某些操作系統進行低級接入。正因為這種高低兼行的特點,Python 可以視作和 C,Visual Basic 同等級別的語言,或是介於二者間的其它級別的語言。 超凡的擴容性 因為 Python 本身用 C 語言寫成(某些擴充平台採用C++語言編寫),而且它採用開放式的源代碼,這樣可以對程序本身進行主動擴充。另外該程序語言的許多模塊由 C 和 C++ 界面支持,包括一些諸如網路和DBM資料庫接入等基本構件,以及其它如 Tk 等許多先進工具。 此外,Python 還能融入 C 或 C++ 語言,從而可以使用 Python 語言為應用程序提供編程界面。也正基於它的跨語言開發的支持能力,還可以使用 Python 設計應用程序後再輸送到為 C 語言環境而無須將程序用 C 語言重寫,因為兩種語言均可同時使用。 JPython 是一個完全採用 Java 語言編寫的 Python 解釋器,這就意味著任何 Python 程序都可與一個 Java 對象或是使用 Python 對象的應用程序相聯結。 超常的簡易性 了解了 Python 以上幾個基本特點後,再對程序語言它內容進行了解就相對容易了。該語言內核很小,而且格式和文體簡明。由於所有其它的組件和擴充部分都使用完全一樣的句法結構,利用 Python 編程會很快讓人速成。 但這並不意味著 Python 語言就沒有復雜的地方。對其許多擴充部分和內庫都必需經過深思熟慮後方可進行有效的利用。 超強的功能性 擁有如此廣泛的支持和博採眾長的特徵,Python 在處理一系列問題上都顯得特別有效。以下為它的功能簡介: 計算器: 由 Python 支持的一個擴充程序叫 NumPy,它可以提供與許多標准數學庫相連的介面。Python 語言還擁有無限精確的特性,可以單獨處理100位數字的算術。 文字處理器: Python 能夠對任何數據進行分割、累加和總結。它的模塊可以對日誌文件行中的元素進行分割,並根據內置的數據種類對其信息進行記錄和總結,最後才進行輸出。它的規則表達式庫使程序員可以使用 emacs,Perl 等等。 這再次證明 Python 的無所不能,曾經有程序員還利用 Python 編製成非常復雜的 SGML 處理工具。 便捷的應用開發: Python對程序員而言一目瞭然,用它編程迅速有效。它博大的模塊庫可以提供針對不同協議、工具和庫的介面。免除重新開發之苦。 由於Python 還支持 Tk 工具,所以可以在幾個小時內完成一個應用軟體,而用 Perl 語言可能會需要2到3天,用 C 語言甚至要幾個星期。 跨平台開發: Python 以中立方式支持不同的一系列平台,如果用戶使用的系統包含不同的平台,使用 Python 開發應用程序則再好不過;它這種適應性也可以為系統預留使用其它工具的可能。對於頻繁更換平台用戶,Python 是個理想的選擇。 為最終用戶提供軟體服務時,Python 也是個備選方案,可以避免同時用不同應用軟體編程的時間和費用。 系統設備 Python旨在避免操作系統中低級部分的滋擾,但如若需要主動進入這些低級部分時也完全可以通過相應的工具和擴充件來實現。與操作系統一樣, Python 可以進入相同的的功能,並予以備份和擴充,而且備份和擴充後的功能會增加 Python 的所有的適應性和介面能力。 互聯網程序設計 Python 帶有的標准模塊可以對網路插槽進行初級和協議級別的通訊,比如,如果要從 POP 伺服器上讀取電子郵件,Python 隨帶的庫模塊可以做到。另外, Python 還支持 XML、HTML和 CGI 庫文件,所以利用它可以解析用戶輸入的需求,並通過網路伺服器產生最佳質量的成果。 程序員還可為擁有 Python 內置解釋器的 Apache、Unix 和 Windows 網路伺服器編譯模塊。基於 CGI 程序的功效,可以很方便地執行 Python 語句而不用單獨裝載。 資料庫編程 Python 中有無數的擴充模塊可以連接如 Orcle、Informix 、mySOL和PostgreSql等通用的資料庫系統;還有稱作 Gadfly 的工具可以獨立Python 提供完全的SQL環境。Python 有強大的文本和數據處理能力,可以用它作為不同資料庫間的連接,比起那些資料庫附帶的總結和匯報工具顯得更有優勢。同時,由於它支持不同系統,用同樣的介面也可以連接任何資料庫。可以用 Tk 在支持平台上建立前端,馬上就可獲得高速跨平台、獨立資料庫的查詢工具。 其它 Python 應用范圍廣泛,幾乎沒有它不適配的語言;憑籍它的微小內核、豐富功能、多樣數據,Python 提供了一個良好的程序構建基礎。綜合了C 和 C++二者的優點,只要採用合適的結構和方式,便可對 Python 程序進行無限的擴充。除了一大堆顯著的優點,Python 也有缺點。 要列出 Python 的缺點確實不太容易。Python 在其擴充模塊中提供了大部分的功能,並充分顯示了對其增加功能有多容易,一旦用它還不能解決問題,那麼也僅需要利用 C 或 C++ 語言重新編寫一個擴充程序便可。 批評 Python 的人往往不是說Python 缺乏某種功能,而是對這種功能並不了解。通常還有一種抱怨說 Python 缺少規則表達式的支持-但實際上有兩個模塊可以用來處理規則表達式,其中之一還可以完全用來支持 Perl 語言的句式句法。對規則表達式的處理並沒有編進該語言中,但並不等於它作不到。 針對 Perl、Rebol 和 Java 語句而言, Python 的優勢在於它的內核很小。這減少了執行的時間,因為在運行時需要裝載的代碼較少,而且這個特點也使它有著更廣的適應性。 一旦熟悉了 Python 語句的簡明風格,它的強大優勢頓時便會凸現出來。用它編就的程序歷久不衰。 Python 的理想用戶群 它適合不同類型的用戶以解決不同類型的問題。大部分時候這些問題一般不為人所知,因為它們有著較高的保密性。也有大型公司用它進行商用開發,並展示開發所獲的成果。 紅帽 (Red Hat )曾用 Python 和 Tk 一起成功開發配置和管理操作系統的可視界面。整個系統可以全面控制 Linux 操作系統,並根據用戶選擇對配置文件作自動更新。 Infoseek 在其公用搜索引擎使用了Python。該公司還用 Python 對其軟體進行定製,使最終用戶能對該網站內容進行方便下栽。 美國航空航天局也在不少領域中用到 Python 程序語言,最出名的莫過於在任務控制中心將 Python 用於任務計劃;對 Python 在其它方面的使用例如用其計算天體方位和設計衛星的路徑等等都充分體現了 Python 的超強計算能力。 以在「星球大站」、「阿貝斯 (Abyss)」、 「星球之旅 (Star Trek)」、 「印地安那瓊斯 (Indiana Jones)」超級大片中當綱特技和動畫製作的工業光魔公司 (Instrial Light)也採用 Python 製作商業動畫。 什麼是Python? Python是一種即譯式的,互動的,面向對象的編程語言,它包含了模組式的操作,異常處理,動態資料形態,十分高層次的動態資料結構,以及類別的使用。Python揉合了簡單的語法和強大的功能。它的語法表達優美易讀。它具有很多優秀的腳本語言的特點:解釋的,面向對象的,內建的高級數據結構,支持模塊和包,支持多種平台,可擴展。而且它還支持互動式方式運行,圖形方式運行。它擁有眾多的編程界面支持各種操作系統平台以及眾多的各類函數庫。利用C和C++可以對它進行擴充。個別的應用軟體如果需要有一個可程序化界面也可以利用它來做為擴展語言用。最後,Python的可移植度非常高:它可以在許多的Unix類平台上運行,在Mac,MS-DOS,視窗Windows,Windows NT,OS/2,BeOS,以至RISCOS上都有相關的Python版本。 簡單的說它具有以下一些特徵: l 是一種解釋性的,面向對象的,具有動態語義的程序設計語言。 l 適合快速開發。 l 能集成到其他流行的伺服器,也自帶伺服器。 l 提供清晰的數據/邏輯/表示的分離。 l 帶有可擴展的內置對象和強大的集成安全模塊。 Python的歷史 Python的創始人為Guido van Rossum。1989年聖誕節期間,在阿姆斯特丹,Guido為了打發聖誕節的無趣,決心開發一個新的腳本解釋程序,做為ABC語言的一種繼承。之所以選中Python(大蟒蛇的意思)作為程序的名字,是因為他是一個Monty 大蟒蛇飛行馬戲團的愛好者。 ABC是由Guido參加設計的一種教學語言(沒聽說過)。就Guido本人看來,ABC這種語言非常優美和強大,是專門為非專業程序員設計的。但是ABC語言並沒有成功,究其原因,Guido認為是非開放造成的。Guido決心在Python中避免這一錯誤(的確如此,Python與其它的語言如C,C++和Java結合的非常好)。同時,他還想實現在ABC中閃現過但未曾實現的東西。 就這樣,Python在Guido手中誕生了(真要感謝他)。實際上,第一個實現是在Mac機上。可以說,Python是從ABC發展起來,主要受到了Mola-3(另一種相當優美且強大的語言,為小型團體所設計的)的影響。並且結合了Unix Shell和C的習慣。 Python可用在哪些地方? Python可以用在許多場合。當你需要大量的動態調整,要容易使用,功能強大並且富有彈性的情況,Python可以發揮很好的功效。 在處理文字方面,Python的核心功能(不需要任何擴充庫的情況下)比別的編程語言更為易用而且速度相當。這使Python在需要處理字元串的工作(包括系統管理,CGI編程)上成為高效的語言。 當Python加上它的標准擴充庫(如PIL,COM,Numeric,Oracledb,kjbuckets,tkinter,win32api,等等)或是特別擴充庫(你自己寫的,或是用SWING做的,或是利用ILU/COBRA/com的)後,它可以變成一個很好的「膠合語言」或者叫「指導語言」。就是指把不同的編程環境和互不相關的軟體功能整合的工具。例如把Numeric和Oracledb透過Python結合起來你就可以替你的資料庫數據做系統分析。Python的簡單、易用以及方便而強大的c/c++擴展方面使它成為一種十分優秀的「膠合語言」。 許多開發人員也在寫圖形用戶界面時廣泛的採用了Python。如果在Windows下,如果想做一個圖形界面程序,那麼Python可以勝任。可以去wxPython/projects/swig/)。 有趣的語法 Guido認為Python的語法是非常優美的。其中一點就是,塊語句的表示不是C語言常用的{}對,或其它符號對,而是採用縮近表示法!有趣吧。就這一點來說,Guido的解釋是:首先,使用縮近表示法減少了視覺上的混亂,並且使程序變短,這樣就減少了需要對基本代碼單元注意的范圍;其次,它減少了程序員的自由度,更有利於統一風格,使得閱讀別人的程序更容易。感覺還是不錯的,就C語言來說,在if語句後面大括弧的寫法就好幾種,不同的人喜歡不同的樣子,還不如統一起來,都不會看得別扭。 在每個類或函數的定義後面,第一行可以是說明語句,根本不需要注釋符標記。對於後面跟塊語句的語句,後面應跟上一個冒號。一行語句不能太長,因為沒有行結束符,如果超長則要使用續行符(\\)。還有一些有趣的比如說,象下面的一個比較處理,用C語言為: if (2 用Python可以表示為 if (2 什麼是Zope? Zope是一個開放源代碼的Web應用伺服器,採用Python語言開發,使用它您可以方便的構建內容管理、內部網、門戶網站、和其他的定製應用。 l 高度面向對象的Web開發平台,採用Python語言開發。 l 可以運行在幾乎所有流行的操作系統上,支持多語言。 l 能集成到其他流行的伺服器,也自帶伺服器。 l 提供清晰的數據/邏輯/表示的分離 。 l 帶有可擴展的內置對象和強大的集成安全模塊。 什麼是Plone? Pone是一個Zope上的一個用戶友好、功能強大的開放源代碼內容管理系統。Plone適合用作內部網/外部網的伺服器、文檔發布系統、門戶伺服器和異地協同群件工具,到目前,Plone其實已經發展成為了一個應用開發平台。 l 是一種功能強大的開放源碼(Open Source)內容管理系統(CMS) 。 l 通過Web瀏覽器來訪問、編輯內容和管理,易於更新內容 。 l 無需編程,即可創建新的內容類型 。 l 協同的編輯和發布機制 。

⑻ 求助python大神,工作實例pandas數據分析

你的意思是比較每台機的寬,不符合的挑出來? 那每台機的返回值是什麼?
你需要些一個函數func func把行變數作為參數,能對每一行操作,然後dataframe.apply(func, axis=1)

⑼ python pandas怎麼輸出結果

本文是對pandas官方網站上《10 Minutes to pandas》的一個簡單的翻譯,原文在這里。這篇文章是對pandas的一個簡單的介紹,詳細的介紹請參考:Cookbook 。習慣上,我們會按下面格式引入所需要的包:

一、 創建對象
可以通過 Data Structure Intro Setion 來查看有關該節內容的詳細信息。
1、可以通過傳遞一個list對象來創建一個Series,pandas會默認創建整型索引:

2、通過傳遞一個numpy array,時間索引以及列標簽來創建一個DataFrame:

3、通過傳遞一個能夠被轉換成類似序列結構的字典對象來創建一個DataFrame:

4、查看不同列的數據類型:

5、如果你使用的是IPython,使用Tab自動補全功能會自動識別所有的屬性以及自定義的列,下圖中是所有能夠被自動識別的屬性的一個子集:

二、 查看數據
詳情請參閱:Basics Section

1、 查看frame中頭部和尾部的行:

2、 顯示索引、列和底層的numpy數據:

3、 describe()函數對於數據的快速統計匯總:

4、 對數據的轉置:

5、 按軸進行排序

6、 按值進行排序

三、 選擇
雖然標準的Python/Numpy的選擇和設置表達式都能夠直接派上用場,但是作為工程使用的代碼,我們推薦使用經過優化的pandas數據訪問方式: .at, .iat, .loc, .iloc 和 .ix詳情請參閱Indexing and Selecing Data 和 MultiIndex / Advanced Indexing。
l 獲取
1、 選擇一個單獨的列,這將會返回一個Series,等同於df.A:

2、 通過[]進行選擇,這將會對行進行切片

l 通過標簽選擇
1、 使用標簽來獲取一個交叉的區域

2、 通過標簽來在多個軸上進行選擇

3、 標簽切片

4、 對於返回的對象進行維度縮減

5、 獲取一個標量

6、 快速訪問一個標量(與上一個方法等價)

l 通過位置選擇
1、 通過傳遞數值進行位置選擇(選擇的是行)

2、 通過數值進行切片,與numpy/python中的情況類似

3、 通過指定一個位置的列表,與numpy/python中的情況類似

4、 對行進行切片

5、 對列進行切片

6、 獲取特定的值

l 布爾索引
1、 使用一個單獨列的值來選擇數據:

2、 使用where操作來選擇數據:

3、 使用isin()方法來過濾:

l 設置
1、 設置一個新的列:

2、 通過標簽設置新的值:

3、 通過位置設置新的值:

4、 通過一個numpy數組設置一組新值:

上述操作結果如下:

5、 通過where操作來設置新的值:

四、 缺失值處理
在pandas中,使用np.nan來代替缺失值,這些值將默認不會包含在計算中,詳情請參閱:Missing Data Section。
1、 reindex()方法可以對指定軸上的索引進行改變/增加/刪除操作,這將返回原始數據的一個拷貝:、

2、 去掉包含缺失值的行:

3、 對缺失值進行填充:

4、 對數據進行布爾填充:

五、 相關操作
詳情請參與 Basic Section On Binary Ops
統計(相關操作通常情況下不包括缺失值)
1、 執行描述性統計:

2、 在其他軸上進行相同的操作:

3、 對於擁有不同維度,需要對齊的對象進行操作。Pandas會自動的沿著指定的維度進行廣播:

Apply
1、 對數據應用函數:

直方圖
具體請參照:Histogramming and Discretization

字元串方法
Series對象在其str屬性中配備了一組字元串處理方法,可以很容易的應用到數組中的每個元素,如下段代碼所示。更多詳情請參考:Vectorized String Methods.

六、 合並
Pandas提供了大量的方法能夠輕松的對Series,DataFrame和Panel對象進行各種符合各種邏輯關系的合並操作。具體請參閱:Merging section
Concat

Join 類似於SQL類型的合並,具體請參閱:Database style joining

Append 將一行連接到一個DataFrame上,具體請參閱Appending:

七、 分組
對於」group by」操作,我們通常是指以下一個或多個操作步驟:
(Splitting)按照一些規則將數據分為不同的組;
(Applying)對於每組數據分別執行一個函數;
(Combining)將結果組合到一個數據結構中;
詳情請參閱:Grouping section

1、 分組並對每個分組執行sum函數:

2、 通過多個列進行分組形成一個層次索引,然後執行函數:

八、 Reshaping
詳情請參閱 Hierarchical Indexing 和 Reshaping。
Stack

數據透視表,詳情請參閱:Pivot Tables.

可以從這個數據中輕松的生成數據透視表:

九、 時間序列
Pandas在對頻率轉換進行重新采樣時擁有簡單、強大且高效的功能(如將按秒采樣的數據轉換為按5分鍾為單位進行采樣的數據)。這種操作在金融領域非常常見。具體參考:Time Series section。

1、 時區表示:

2、 時區轉換:

3、 時間跨度轉換:

4、 時期和時間戳之間的轉換使得可以使用一些方便的算術函數。

十、 Categorical
從0.15版本開始,pandas可以在DataFrame中支持Categorical類型的數據,詳細 介紹參看:categorical introction和API documentation。

1、 將原始的grade轉換為Categorical數據類型:

2、 將Categorical類型數據重命名為更有意義的名稱:

3、 對類別進行重新排序,增加缺失的類別:

4、 排序是按照Categorical的順序進行的而不是按照字典順序進行:

5、 對Categorical列進行排序時存在空的類別:

十一、 畫圖
具體文檔參看:Plotting docs

對於DataFrame來說,plot是一種將所有列及其標簽進行繪制的簡便方法:

十二、 導入和保存數據
CSV,參考:Writing to a csv file
1、 寫入csv文件:

2、 從csv文件中讀取:

HDF5,參考:HDFStores
1、 寫入HDF5存儲:

2、 從HDF5存儲中讀取:

Excel,參考:MS Excel
1、 寫入excel文件:

2、 從excel文件中讀取:

來自為知筆記(Wiz)

閱讀全文

與python擴展庫pandas的使用案例相關的資料

熱點內容
貴陽螺桿壓縮冷凝機組組成 瀏覽:115
掃描製作pdf 瀏覽:515
2016奇駿車機如何安裝app 瀏覽:764
phpvc9x64 瀏覽:73
蜜語星球解壓 瀏覽:476
c語言編譯器怎麼打不開 瀏覽:818
海印程序員 瀏覽:648
為什麼華為手機找不到伺服器 瀏覽:664
pdf增減 瀏覽:608
雲伺服器怎麼公網架設網站 瀏覽:91
pythonrequests慢 瀏覽:140
excel保存沒有pdf 瀏覽:922
冰箱壓縮機管囗示意圖 瀏覽:497
許振民編譯局 瀏覽:625
雙網路加什麼伺服器好用 瀏覽:211
linux命令中文 瀏覽:839
python怎麼做物聯網 瀏覽:731
app有什麼推薦嗎 瀏覽:79
自學程序員能不能面試工作 瀏覽:879
有錢人的解壓方法 瀏覽:84