📜  带有 where 逻辑的 pandas 中的新列 - Python (1)

📅  最后修改于: 2023-12-03 15:09:43.324000             🧑  作者: Mango

带有 where 逻辑的 pandas 中的新列 - Python

Pandas 是一个强大的数据分析和处理工具,常用于数据的预处理、清洗、转换和可视化等方面,其中新列的添加也是很常见的一个操作。本文将介绍 Pandas 中带有 where 逻辑的新列的添加方法,帮助程序员更好地处理数据。

where 概述

Pandas 中的 where 函数与 NumPy 库中的 where 函数有所不同,其作用为:根据指定的条件,对符合条件的元素进行替换或保留不变,不符合条件的元素进行替换或保留不变。其语法格式如下:

pandas.DataFrame.where(cond, other=nan, inplace=False, axis=None, level=None, errors='raise', try_cast=False)

参数解释:

  • cond:条件表达式;
  • other:替换值或者 Series/DataFrame;
  • inplace:是否就地修改原 DataFrame;
  • axis:沿行或列进行操作;
  • level:针对层次索引进行操作;
  • errors:错误处理方式(raise、ignore)。

当 cond 条件为 True 时,保留原值不变;当 cond 条件为 False 时,替换为 other。

新列带有 where 逻辑的添加方法

在 Pandas 中添加新列有多种方法,其中新列带有 where 逻辑的添加方法可以通过两种方式实现:

方式一

使用 apply 和 lambda 函数,根据指定的条件计算每个元素的值,并返回到新列中。

import pandas as pd

# 创建 DataFrame
df = pd.DataFrame({'a': [1, 2, 3], 'b': [4, 5, 6]})

# 使用 apply 和 lambda 函数,根据指定的条件计算每个元素的值,并返回到新列中
df['c'] = df.apply(lambda row: row['a'] if row['b'] > 4 else 0, axis=1)

# 输出结果
print(df)

输出结果为:

   a  b  c
0  1  4  0
1  2  5  2
2  3  6  3
方式二

使用 where 函数,根据指定的条件对指定列进行替换或保留不变,并返回到新列中。

import pandas as pd

# 创建 DataFrame
df = pd.DataFrame({'a': [1, 2, 3], 'b': [4, 5, 6]})

# 使用 where 函数,根据指定的条件对指定列进行替换或保留不变,并返回到新列中
df['c'] = df['a'].where(df['b'] > 4, 0)

# 输出结果
print(df)

输出结果为:

   a  b  c
0  1  4  0
1  2  5  2
2  3  6  3
总结

本文介绍了 Pandas 中新列带有 where 逻辑的添加方法,这对于数据处理和分析很有帮助。需要注意的是,在使用 where 函数时,要按照指定的方式参数,否则可能会产生错误。