欢迎访问宙启技术站
智能推送

如何在Python的数据处理中使用where()函数

发布时间:2023-12-14 10:55:42

在Python中,可以使用where()函数来处理数据。where()函数可以根据指定的条件从数组中选择元素。

where()函数可用于处理NumPy数组、pandas数据框或Series、以及其他支持NumPy的数据结构。

下面是使用where()函数的一些示例:

1. 使用where()函数改变数组的元素值:

import numpy as np

arr = np.array([1, 2, 3, 4, 5])
new_arr = np.where(arr > 3, arr, 0)
print(new_arr)

输出:

[0 0 0 4 5]

上述代码中,where()函数根据条件arr > 3选择元素,如果条件成立,则选择原始数组中的元素,否则选择0。因此,输出结果中小于等于3的元素被替换为0。

2. 使用where()函数在pandas数据框中根据条件选择行:

import pandas as pd

data = {'Name': ['Tom', 'Nick', 'John', 'Kevin'],
        'Age': [20, 25, 30, 35]}
df = pd.DataFrame(data)

new_df = df.where(df["Age"] > 25)
print(new_df)

输出:

   Name   Age
0   NaN   NaN
1   NaN   NaN
2  John  30.0
3  Kevin 35.0

上述代码中,where()函数根据条件df["Age"] > 25选择行,如果条件成立,则选择原始数据框中的行,否则选择NaN。因此,输出结果中年龄小于等于25的行被替换为NaN。

3. 使用where()函数在pandas数据框中根据条件选择列:

import pandas as pd

data = {'Name': ['Tom', 'Nick', 'John', 'Kevin'],
        'Age': [20, 25, 30, 35]}
df = pd.DataFrame(data)

new_df = df.where(df.columns != "Age", "Unknown", axis=1)
print(new_df)

输出:

   Name      Age
0   Tom  Unknown
1  Nick  Unknown
2  John  Unknown
3 Kevin  Unknown

上述代码中,where()函数根据条件df.columns != "Age"选择列,如果条件成立,则选择原始数据框中的列,否则选择"Unknown"。参数axis=1表示按列选择。因此,输出结果中列名为"Age"的列被替换为"Unknown"。

总结起来,where()函数可以根据指定的条件从数组或数据框中选择元素或行、列。