整理一套 pandas 詳細教程,希望對你有幫助!

2021-02-13 Python開發者
Python 是開源的,它很棒,但是也無法避免開源的一些固有問題:很多包都在做(或者在嘗試做)同樣的事情。如果你是 Python 新手,那麼你很難知道某個特定任務的最佳包是哪個,你需要有經驗的人告訴你。有一個用於數據科學的包絕對是必需的,它就是 pandas。pandas 最有趣的地方在於裡面隱藏了很多包。它是一個核心包,裡面有很多其他包的功能。這點很棒,因為你只需要使用 pandas 就可以完成工作。pandas 相當於 python 中 excel:它使用表(也就是 dataframe),能在數據上做各種變換,但還有其他很多功能。如果你早已熟知 python 的使用,可以直接跳到第三段。pandas 最基本的功能讀取數據
data = pd.read_csv( my_file.csv )
data = pd.read_csv( my_file.csv , sep= ; , encoding= latin-1 , nrows=1000, skiprows=[2,5])

sep 代表的是分隔符。如果你在使用法語數據,excel 中 csv 分隔符是「;」,因此你需要顯式地指定它。編碼設置為 latin-1 來讀取法語字符。nrows=1000 表示讀取前 1000 行數據。skiprows=[2,5] 表示你在讀取文件的時候會移除第 2 行和第 5 行。最常用的功能:read_csv, read_excel其他一些很棒的功能:read_clipboard, read_sql


寫數據

data.to_csv( my_new_file.csv , index=None)

index=None 表示將會以數據本來的樣子寫入。如果沒有寫 index=None,你會多出一個第一列,內容是 1,2,3,...,一直到最後一行。我通常不會去使用其他的函數,像.to_excel, .to_json, .to_pickle 等等,因為.to_csv 就能很好地完成工作,並且 csv 是最常用的表格保存方式。
檢查數據image
Gives (#rows, #columns)

給出行數和列數。

data.describe()

查看數據
data.head(3)

列印出數據的前 3 行。與之類似,.tail() 對應的是數據的最後一行。
data.loc[8]

data.loc[8,  column_1 ]

data.loc[range(4,6)]

pandas 的基本函數邏輯運算
data[data[ column_1 ]== french ]
data[(data[ column_1 ]== french ) & (data[ year_born ]==1990)]
data[(data[ column_1 ]== french ) & (data[ year_born ]==1990) & ~(data[ city ]== London )]

通過邏輯運算來取數據子集。要使用 & (AND)、 ~ (NOT) 和 | (OR),必須在

邏輯運算前後加上「(」和「)」。

data[data[ column_1 ].isin([ french ,  english ])]

除了可以在同一列使用多個 OR,你還可以使用.isin() 函數。

matplotlib 包使得這項功能成為可能。正如我們在介紹中所說,它可以直接在 pandas 中使用。
data[ column_numerical ].plot()

image
data[ column_numerical ].hist()


畫出數據分布(直方圖)


image
%matplotlib inline

如果你在使用 Jupyter,不要忘記在畫圖之前加上以上代碼。
更新數據
data.loc[8,  column_1 ] =  english
將第八行名為 column_1 的列替換為「english」

data.loc[data[ column_1 ]== french ,  column_1 ] =  French

好了,現在你可以做一些在 excel 中可以輕鬆訪問的事情了。下面讓我們深入研究 excel 中無法實現的一些令人驚奇的操作吧。中級函數


data[ column_1 ].value_counts()

在所有的行、列或者全數據上進行操作
data[ column_1 ].map(len)

len() 函數被應用在了「column_1」列中的每一個元素上.map() 運算給一列中的每一個元素應用一個函數
data[ column_1 ].map(len).map(lambda x: x/100).plot()

pandas 的一個很好的功能就是鏈式方法(https://tomaugspurger.github.io/method-chaining)。它可以幫助你在一行中更加簡單、高效地執行多個操作(.map() 和.plot())。


data.apply(sum)

.applymap() 會給表 (DataFrame) 中的所有單元應用一個函數。tqdm, 唯一的在處理大規模數據集時,pandas 會花費一些時間來進行.map()、.apply()、.applymap() 等操作。tqdm 是一個可以用來幫助預測這些操作的執行何時完成的包(是的,我說謊了,我之前說我們只會使用到 pandas)。
from tqdm import tqdm_notebook
tqdm_notebook().pandas()

data[ column_1 ].progress_map(lambda x: x.count( e ))

用 .progress_map() 代替.map()、.apply() 和.applymap() 也是類似的。在 Jupyter 中使用 tqdm 和 pandas 得到的進度條
相關性和散射矩陣
data.corr()
data.corr().applymap(lambda x: int(x*100)/100)


pd.plotting.scatter_matrix(data, figsize=(12,8))

散點矩陣的例子。它在同一幅圖中畫出了兩列的所有組合。pandas 中的高級操作The SQL 關聯


data.merge(other_data, on=[ column_1 ,  column_2 ,  column_3 ])


分組一開始並不是那麼簡單,你首先需要掌握語法,然後你會發現你一直在使用這個功能。


data.groupby( column_1 )[ column_2 ].apply(sum).reset_index()

按一個列分組,選擇另一個列來執行一個函數。.reset_index() 會將數據重構成一個表。正如前面解釋過的,為了優化代碼,在一行中將你的函數連接起來。行迭代
dictionary = {}

for i,row in data.iterrows():
 dictionary[row[ column_1 ]] = row[ column_2 ]

.iterrows() 使用兩個變量一起循環:行索引和行的數據 (上面的 i 和 row)。總而言之,pandas 是 python 成為出色的程式語言的原因之一。我本可以展示更多有趣的 pandas 功能,但是已經寫出來的這些足以讓人理解為何數據科學家離不開 pandas。總結一下,pandas 有以下優點:它有助於數據科學家快速讀取和理解數據,提高其工作效率。

相關焦點

  • Pandas 常用功能詳細教程!
    如果你是 Python 新手,那麼你很難知道某個特定任務的最佳包是哪個,你需要有經驗的人告訴你。有一個用於數據科學的包絕對是必需的,它就是 pandas。pandas 最有趣的地方在於裡面隱藏了很多包。它是一個核心包,裡面有很多其他包的功能。這點很棒,因為你只需要使用 pandas 就可以完成工作。
  • 別找了,這是 Pandas 最詳細教程了
    如果你是 Python 新手,那麼你很難知道某個特定任務的最佳包是哪個,你需要有經驗的人告訴你。有一個用於數據科學的包絕對是必需的,它就是 pandas。pandas 最有趣的地方在於裡面隱藏了很多包。它是一個核心包,裡面有很多其他包的功能。這點很棒,因為你只需要使用 pandas 就可以完成工作。
  • 別找了,這是 pandas 最詳細教程了
    如果你是 Python 新手,那麼你很難知道某個特定任務的最佳包是哪個,你需要有經驗的人告訴你。有一個用於數據科學的包絕對是必需的,它就是 pandas。pandas 最有趣的地方在於裡面隱藏了很多包。它是一個核心包,裡面有很多其他包的功能。這點很棒,因為你只需要使用 pandas 就可以完成工作。
  • Python Pandas 最詳教程
    如果你是 Python 新手,那麼你很難知道某個特定任務的最佳包是哪個,你需要有經驗的人告訴你。有一個用於數據科學的包絕對是必需的,它就是 pandas。pandas 最有趣的地方在於裡面隱藏了很多包。它是一個核心包,裡面有很多其他包的功能。這點很棒,因為你只需要使用 pandas 就可以完成工作。
  • 伴讀 | 牛津樹【中國篇3-4】Panda Picnic
    So,They would go to a panda picnic.That's why Lin needed a panda costume.Lin put it on.Lin 穿上了演出服。"Wow!" said Biff. "A panda!"
  • 「panda」是「熊貓」,「car」是汽車,「panda car」是什麼
    大家好,歡迎來的餅哥英語的頻道,今天我們分享一個非常有用且地道的表達——panda car, 這個短語的含義不是指「熊貓車」,其正確的含義是:panda car 巡邏警車(此表達來源於英國)Slow down, there's a panda car up ahead!
  • 使用Pandas DataFrame輸出報告
    ,我相信你一定經常使用Pandas。在Jupyter Notebook上輸出pandas DataFrame是非常頻繁的。然而,你有沒有想過,我們可以讓DataFrame本身可視化?換句話說,對於一些簡單的可視化目的,我們不需要Matplotlib或其他可視化庫。
  • 魯智深陪你精讀牛津樹(中國故事5)|Panda Picnic
    Lin wears a black and white costume, like a real panda.Lin穿著一身黑白的服裝,像一隻熊貓。Do you think Lin likes the costume?你覺得Lin喜歡她的服裝嗎?Yes, I think she likes it very much.
  • 玩閱讀Panda Bear, Panda Bear經典英文繪本資源
    數理化不拿手,但能說一口幽默的英語,再配上一個高情商的胸懷,那麼你的孩子已經鶴立雞群了。原版英文繪本閱讀,含閱讀建議、指導方法+視頻 | 繪本閱讀必備推Panda Bear, Panda Bear, What Do You See?(建議在WiFi下觀看,土豪隨意!)Panda Bear, Panda Bear, what do you see?
  • PandaSQL:一個讓你能夠通過SQL語句進行pandas的操作的python包
    如果你熟練的使用SQL,那麼這篇文章將介紹一種更直接、簡單的使用Pandas處理大多數數據操作案例。假設你對SQL非常的熟悉,或者你想有更可讀的代碼。或者您只是想在dataframe上運行一個特殊的SQL查詢。或者,也許你來自R,想要一個sqldf的替代品。
  • 【翻譯完成】Houdini的基礎入門教程,看這一套就夠了!
    大家好,今天給大家推薦的這套教程,是Houdini界的教程扛把子Entagma在去年推出的一套旨在幫助小白理解Houdini工作流程的教程。 本套教程一共10期,接近5小時。青之巔已經翻譯完所有10期教程,已全部在網站上呈現給各位小夥伴了!
  • 超詳細的身體繪製畫法教程!
    畫好動漫人物身體有哪些技巧?想必這些問題都是繪畫初學者們比較傷腦筋的問題,那麼到底怎樣才能畫好動漫人物身體呢?今天就在網絡上收集整理了關於動漫人物身體怎麼畫?超詳細的身體繪製畫法教程!教程非常簡單,趕緊來看看叭:身體的畫法別想得太難,先把身體部分拿出來畫一畫。需要記住的是身體部分分胸部和腰部兩部分。
  • 超詳細的衣服褶皺畫法教程,畫畫小白必備!
    畫好動漫人物衣服褶皺有哪些技巧?想必這些問題都是繪畫初學者們比較傷腦筋的問題,那麼到底怎樣才能畫好動漫人物衣服褶皺呢?在網絡上收集整理了關於超詳細的衣服褶皺畫法教程,畫畫小白必備!教程非常簡單,趕緊來看看叭:衣服褶皺可謂是讓無數繪畫者無比頭疼的問題。不同材質的褶皺,不同形態的褶皺,其千迴百轉千姿百態之複雜根本讓人無從下手啊有木有!
  • 最詳細的SAI筆刷設置教程,非常全面詳細!
    必須明確的一點是,SAI只是幫助你繪畫表達的工具,真正操作工具的是屏幕前的「你」。了解了這一點,我們就能掌握「主動」,讓工具成為自己的「好幫手」。它有許多的特效給我們選用。不過這太多了,小pencil就舉幾個例子吧,其他的你可以自己去親自體會一番。如圖,左邊的是用「通常的圓形」「無材質」繪製的,中間的是「結縷草」「無材質」繪製的,右邊是「通常的圓形」「畫布」繪製的。
  • 隱藏的詳細教程分享
    不少用戶使用iphone x卻還不會隱藏應用,下面呢,手小編就分享了iphone x隱藏應用的詳細教程,希望對你有所幫助。一、隱藏系統自帶的應用打開【設置】——【通用】——【訪問限制】然後點擊【啟用訪問限制】,輸入你想設置的密碼(一定要記住),選擇你想隱藏的系統應用即可。隱藏之後這些應用也不會消失,想要重新再桌面看到,重複以上操作,只要把需要恢復的應用點綠即可。
  • 查看詳細教程
    下面小編就給大家分享一下QQ輸入法手寫設置的詳細教程的方法哦,希望會對你有所幫助。什麼齟齬、耄耋都是信手拈來的以上就是小編為大家帶來的關於QQ輸入法手寫設置的詳細教程,有需要的小夥伴一起拉學習吧!希望可以幫助到大家。
  • 四種詳細的毛線畫教程來了,你更喜歡哪個?
    今天給大家分享幾種毛線畫教程。一個相框,在裡面鋪滿各色的毛線就能做出漂亮的裝飾。也可以帶著寶寶一起玩。配上幾顆裝飾小紐扣做成魚缸了。有沒有很喜歡?那麼我們來看詳細教程吧!油畫框某寶有很多,練手的話幾塊錢的那種就行了。第一種製作教程:先用鉛筆把想要的圖案勾勒出來。有顏料的可以塗個顏色,這樣毛線沒排列整齊的話也不用擔心露出底板色來。
  • 【板繪繪畫教程】超詳細的衣服褶皺畫法教程,畫畫小白必備
    畫好動漫人物衣服褶皺有哪些技巧?衣服褶皺可謂是讓無數繪畫者無比頭疼的問題。不同材質的褶皺,不同形態的褶皺,其千迴百轉千姿百態之複雜根本讓人無從下手啊有木有!但是複雜的事物都有其基本規律:受力是衣服褶皺的產生根源,所以繪製褶皺之前應先考慮受力,歸納力的方向,那麼看似複雜的褶皺問題就可以被簡化了。
  • 口罩鼻梁絲比較混亂,良莠不齊,詳細介紹一下,希望對你有幫助
    由於現在市場上口罩鼻梁絲比較混亂,下面我們就詳細介紹一下,希望用戶朋友們仔細地看,對你是有幫助的。本來口罩鼻梁絲的標準流程是:用0.45,0.5,或0.7毫米的高溫真空退火鐵絲進行冷鍍鋅處理,此過程中的退火才是真正意義上的退火,地缸爐恆溫退火4小時以上,這樣出來的退火絲軟度才是口罩鼻梁絲的標準軟度。
  • Pandas GUI:如何輕鬆獲取Pandas數據幀?
    這些庫本質上是在hood中運行Pandas的功能,如SweetViz和Pandas profiling庫。· 基於GUI的Pandas替代品,如Bamboolib。最近,筆者發現了另一個基於GUI的Pandas替代,叫做PandasGUI。它具有繪製數據幀以及重新構建數據幀的功能,用戶也可以進行任意自定義操作。