在指定内执行switch语句

2024-04-29 18:41:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我希望在数据中有一个字段,用于标记“焦点”行,以便以后以不同的方式绘制它们。下面是一些有效的代码,并返回我想要的输出:

import pandas as pd

df = pd.DataFrame(
    {'Animal': ['Falcon', 'Falcon', 'Parrot', 'Parrot', 'Lemur'],
    'Max Speed': [380., 370., 24., 26., 19.]}
).assign(Highlight = 'background')
    
df.loc[df.Animal == 'Parrot', 'Highlight'] = 'highlight'
    
print(df)

返回

enter image description here

但是,在赋值过程中一步创建Highlight列(可能使用类似Highlight = if df.Animal == 'Parrot' then 'highlight' else 'background' end的东西),而不是稍后更新的占位符变量,感觉更正确(或者至少更优雅)

这可能吗?这是完成任务的正确方式吗


Tags: 数据代码标记importdf方式绘制焦点
1条回答
网友
1楼 · 发布于 2024-04-29 18:41:06

.assign方法可以根据https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.assign.html处理方程

我建议,最灵活和最具Python风格的方法就是列出所有接收到highlight标签的动物。然后在赋值中使用.apply和lambda。例如:

highlights = ['Parrot']
df = df.assign(Highlight = df['Animal'].apply(lambda x: 'highlight' if x in highlights else 'background'))

这使得:

>>> print(df)

   Animal  Max Speed   Highlight
0  Falcon      380.0  background
1  Falcon      370.0  background
2  Parrot       24.0   highlight
3  Parrot       26.0   highlight
4   Lemur       19.0  background

相关问题 更多 >