自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

5 個 Pandas 超級好用的隱藏技巧

開發(fā) 前端
在本文中,分享五個鮮為人知的 Pandas 技巧。這些技巧初時對我來說非常新穎,需要經(jīng)過大量研究才能掌握。

對于數(shù)據(jù)科學(xué)來說,Python 中最重要的庫是什么?有些人可能認(rèn)為是 scikit-learn,它提供了許多內(nèi)置函數(shù)用于機(jī)器學(xué)習(xí)任務(wù)。部分人可能會選擇 NumPy 進(jìn)行數(shù)值運(yùn)算。

但我還是支持 Pandas。為什么?如果你不使用它的功能,你的操作可能會寸步難行。Pandas 非常龐大,需要學(xué)習(xí)的東西很多。

在本文中,分享五個鮮為人知的 Pandas 技巧。這些技巧初時對我來說非常新穎,需要經(jīng)過大量研究才能掌握。

1. pipe() 方法鏈

.pipe() 方法鏈可以使代碼更簡潔、更高效。使用.pipe(),可以在一行中應(yīng)用多個操作。

下面,我們將篩選市場價值高于 1,000,000 歐元的球員數(shù)據(jù),并按排序market_value_in_eur,找出世界上最昂貴的球員。

# 這個 transfermarkt 數(shù)據(jù)集來自 Kaggle(https://www.kaggle.com/datasets/davidcariboo/player-scores)
def  filter_high_value_players ( df ): 
    return df[df[ 'market_value_in_eur' ] > 1000000 ] 

def  sort_by_market_value ( df ): 
    return df.sort_values( 'market_value_in_eur' , accending= False ) 

# 使用 .pipe() 進(jìn)行方法鏈
filtered_sorted_df = df.pipe(filter_high_value_players).pipe(sort_by_market_value)

2. query()簡化過濾

該query()方法使得過濾數(shù)據(jù)幀更加容易。無需使用長條件,query()使代碼更具可讀性。

在這里,我們嘗試尋找身價 5000 萬歐元且身高超過 185 歲的足球運(yùn)動員。

high_value_players_2022 = df2.query("market_value_in_eur > 50000000 和 height_in_cm == 185") 
high_value_players_2022.head(5)

3. eval()加速計(jì)算

該eval()函數(shù)可以為算術(shù)運(yùn)算提速,特別是對于列式計(jì)算非常有用。

# 使用 eval() 計(jì)算百萬市值
df[ 'market_value_in_millions' ] = df.eval ( 'market_value_in_eur / 1_000_000' ) 
# 刪除 na df.dropna ( 
subset=[ 'market_value_in_millions' ], inplace= True ) 
# 從最高到最低升序
df.sort_values( "market_value_in_millions" , accending = False )[[ "name" , "market_value_in_millions" ]]

4. astype()優(yōu)化數(shù)據(jù)類型

將列轉(zhuǎn)換為Categorical數(shù)據(jù)類型可以節(jié)省內(nèi)存并加快操作,并且如果在為機(jī)器學(xué)習(xí)算法處理數(shù)據(jù)時,這是該方法將是你最佳選擇。

# 將 'player_club_domestic_competition_id' 轉(zhuǎn)換為分類
df [ 'player_club_domestic_competition_id' ] = df [ 'player_club_domestic_competition_id' ].astype( 'category' )

5. assign()臨時添加列

對于于臨時更改數(shù)據(jù)列,可以使用assign()方法添加新列而不修改原始數(shù)據(jù)。

在這里可以看到球員的價值是否高于平均水平。

# 使用assign()添加一列,表示市場價值是否高于平均水平
df_with_new_col = df.assign(above_average = df[ 'market_value_in_millions' ] > df[ 'market_value_in_millions' ].mean()) 
df_with_new_col.head()

圖片圖片

責(zé)任編輯:武曉燕 來源: 數(shù)據(jù)STUDIO
相關(guān)推薦

2022-05-10 09:33:50

Pandas技巧代碼

2023-08-18 15:12:00

JavaScript開發(fā)

2020-08-14 10:57:49

開發(fā)技能代碼

2019-11-20 10:54:32

Python數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)庫

2024-01-03 14:54:56

PythonPandas數(shù)據(jù)處理工具

2020-06-24 07:44:12

Python數(shù)據(jù)技術(shù)

2023-07-18 07:56:31

工具reduce業(yè)務(wù)

2024-02-26 08:20:00

CSS開發(fā)

2023-06-28 00:02:40

2023-12-19 13:31:00

CSS前端技巧

2020-12-14 08:30:02

JavaScript開發(fā)代碼

2015-07-16 14:51:13

下載助手斷點(diǎn)續(xù)傳多任務(wù)

2020-06-21 13:57:21

JavaScript開發(fā)代碼

2020-09-07 08:29:03

CSS 函數(shù)JavaScript

2018-04-19 14:30:25

LinuxVi編輯器

2014-11-20 16:02:22

WatchKit

2023-03-24 16:41:36

Pandas技巧數(shù)據(jù)處理

2022-10-19 15:20:58

pandas數(shù)據(jù)處理庫技巧

2021-09-22 23:17:09

Java開發(fā)數(shù)組

2013-05-27 15:07:36

Eclipse插件
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號