如何使用Pandas将多个条件判断(如isnull())的结果转换为新的列,这些结果之间用逗号隔开,表示每个单元格是非空还是包含值?
时间: 2024-12-24 14:39:21 浏览: 4
在Pandas中,你可以使用`np.where()`函数结合`isin()`、`notnull()`或者`isna()`等方法来创建一个新的列,该列基于多个条件对原始数据进行分类。首先,你需要确定哪些列和条件需要检查。假设我们有一个DataFrame `df`,你想根据`column1`和`column2`是否为空创建新列`new_column`:
```python
import pandas as pd
# 假设 column1 和 column2 是你要检查的列
condition1 = df['column1'].notnull() # 检查 column1 是否非空
condition2 = df['column2'].notnull() # 同理,检查 column2 是否非空
# 使用 np.where() 将布尔系列转换为相应值(例如 '有值', '无值')
new_column_values = np.where(condition1 & condition2, '有值, 有值',
np.where(condition1, '有值, 无值', '无值, 有值'))
# 创建新的 DataFrame 列
df['new_column'] = new_column_values.astype(str)
```
这将会生成一个新的列,其中每个单元格的内容是两个列中非空状态的组合,用逗号分隔。如果两个列都为空,则显示'无值, 无值'。
阅读全文