5 个 Pandas 超级好用的隐藏技巧

开发 前端
在本文中,分享五个鲜为人知的 Pandas 技巧。这些技巧初时对我来说非常新颖,需要经过大量研究才能掌握。

对于数据科学来说,Python 中最重要的库是什么?有些人可能认为是 scikit-learn,它提供了许多内置函数用于机器学习任务。部分人可能会选择 NumPy 进行数值运算。

但我还是支持 Pandas。为什么?如果你不使用它的功能,你的操作可能会寸步难行。Pandas 非常庞大,需要学习的东西很多。

在本文中,分享五个鲜为人知的 Pandas 技巧。这些技巧初时对我来说非常新颖,需要经过大量研究才能掌握。

1. pipe() 方法链

.pipe() 方法链可以使代码更简洁、更高效。使用.pipe(),可以在一行中应用多个操作。

下面,我们将筛选市场价值高于 1,000,000 欧元的球员数据,并按排序market_value_in_eur,找出世界上最昂贵的球员。

# 这个 transfermarkt 数据集来自 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() 进行方法链
filtered_sorted_df = df.pipe(filter_high_value_players).pipe(sort_by_market_value)

2. query()简化过滤

该query()方法使得过滤数据帧更加容易。无需使用长条件,query()使代码更具可读性。

在这里,我们尝试寻找身价 5000 万欧元且身高超过 185 岁的足球运动员。

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

3. eval()加速计算

该eval()函数可以为算术运算提速,特别是对于列式计算非常有用。

# 使用 eval() 计算百万市值
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()优化数据类型

将列转换为Categorical数据类型可以节省内存并加快操作,并且如果在为机器学习算法处理数据时,这是该方法将是你最佳选择。

# 将 'player_club_domestic_competition_id' 转换为分类
df [ 'player_club_domestic_competition_id' ] = df [ 'player_club_domestic_competition_id' ].astype( 'category' )

5. assign()临时添加列

对于于临时更改数据列,可以使用assign()方法添加新列而不修改原始数据。

在这里可以看到球员的价值是否高于平均水平。

# 使用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()

图片图片

责任编辑:武晓燕 来源: 数据STUDIO
相关推荐

2022-05-10 09:33:50

Pandas技巧代码

2023-08-18 15:12:00

JavaScript开发

2020-08-14 10:57:49

开发技能代码

2019-11-20 10:54:32

Python数据结构数据库

2024-01-03 14:54:56

PythonPandas数据处理工具

2020-06-24 07:44:12

Python数据技术

2024-02-26 08:20:00

CSS开发

2023-07-18 07:56:31

工具reduce业务

2023-06-28 00:02:40

2023-12-19 13:31:00

CSS前端技巧

2015-07-16 14:51:13

下载助手断点续传多任务

2020-12-14 08:30:02

JavaScript开发代码

2020-06-21 13:57:21

JavaScript开发代码

2020-09-07 08:29:03

CSS 函数JavaScript

2018-04-19 14:30:25

LinuxVi编辑器

2014-11-20 16:02:22

WatchKit

2023-03-24 16:41:36

Pandas技巧数据处理

2013-05-27 15:07:36

Eclipse插件

2022-10-19 15:20:58

pandas数据处理库技巧

2021-09-22 23:17:09

Java开发数组
点赞
收藏

51CTO技术栈公众号