用pandas中where函数写一串代码
时间: 2023-09-14 17:05:58 浏览: 120
### 回答1:
```python
import pandas as pd
# 创建一个示例数据集
data = {'Name': ['Tom', 'Jack', 'Steve', 'Ricky'],
'Age': [28, 34, 29, 42],
'City': ['New York', 'London', 'Houston', 'Chicago']
}
df = pd.DataFrame(data)
# 使用 where 函数筛选满足条件的行
result = df.where(df['Age'] > 30)
# 去除NaN值
result = result.dropna()
print(result)
```
上面的代码中,我们首先创建了一个示例数据集 `df`,然后使用 `where` 函数筛选出 `Age` 列值大于 30 的行。最后使用 `dropna` 函数去除结果中的 `NaN` 值。
### 回答2:
使用pandas中的where函数可以根据指定的条件来筛选数据。下面是一串示例代码:
```python
import pandas as pd
# 创建一个DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],
'Age': [25, 30, 35, 40],
'Gender': ['Female', 'Male', 'Male', 'Male']}
df = pd.DataFrame(data)
# 使用where函数筛选数据
# 如果年龄大于等于30,则保留原值,否则替换为0
df['Age'] = df['Age'].where(df['Age'] >= 30, 0)
# 如果性别是Male,则替换为1,否则替换为0
df['Gender'] = df['Gender'].where(df['Gender'] == 'Male', 0)
print(df)
```
运行这段代码后,会输出如下结果:
```
Name Age Gender
0 Alice 0 0
1 Bob 30 1
2 Charlie 35 1
3 David 40 1
```
这段代码首先创建了一个包含姓名、年龄和性别的DataFrame。然后使用where函数根据指定条件对年龄和性别进行了筛选和替换操作。最后打印输出了处理后的DataFrame。
其中,`df['Age'].where(df['Age'] >= 30, 0)`表示对df['Age']列进行筛选,如果元素大于等于30,则保留原值,否则替换为0。`df['Gender'].where(df['Gender'] == 'Male', 0)`表示对df['Gender']列进行筛选,如果元素值是'Male',则替换为1,否则替换为0。
### 回答3:
可以使用pandas中的where函数来进行条件筛选和替换操作。下面是一段使用where函数的示例代码,展示了如何根据条件对DataFrame进行筛选和替换。
import pandas as pd
# 创建示例DataFrame
data = {'Name': ['John', 'Anna', 'Peter', 'Linda'],
'Age': [25, 36, 29, 41],
'Gender': ['Male', 'Female', 'Male', 'Female']}
df = pd.DataFrame(data)
# 使用where函数筛选数据
filtered_df = df.where(df['Age'] > 30)
# 使用where函数替换数据
replaced_df = df.where(df['Gender'] == 'Male', 'Not Specified')
# 输出结果
print("筛选后的DataFrame:")
print(filtered_df)
print("替换后的DataFrame:")
print(replaced_df)
在代码中,我们首先创建了一个包含姓名、年龄和性别信息的DataFrame。然后,我们使用where函数对DataFrame进行筛选和替换操作。
首先,我们使用“df['Age'] > 30”作为条件来筛选出年龄大于30的数据。where函数会将不满足条件的行替换为NaN值。这样就得到了一个新的DataFrame(filtered_df),其中只包含年龄大于30的数据。
接下来,我们使用“df['Gender'] == 'Male'”作为条件来筛选出性别为男性的数据。where函数会将不满足条件的行替换为指定的值(在本例中为'Not Specified')。这样就得到了一个新的DataFrame(replaced_df),其中非男性的数据被替换为'Not Specified'。
最后,我们通过打印输出展示了筛选和替换后的DataFrame。
阅读全文