如何基于行条件生成Pandas独立字符串结果DataFrame
实现基于条件生成独立字符串Pandas DataFrame
没问题!我来帮你搞定这个需求——咱们可以用Pandas的向量化操作高效实现,完全不用写低效的循环,直接生成你要的独立字符串结果DataFrame。
第一步:先构造示例数据
假设你的原始数据是这样的(可以替换成你自己的数据集):
import pandas as pd # 示例温度数据集 data = {'temperature': [3, 7, 12, 9, 15, 4]} original_df = pd.DataFrame(data)
方法一:用numpy.where嵌套实现多条件判断
这种方法适合简单的多分支条件,逻辑清晰:
import numpy as np # 按条件生成结果数组 status_array = np.where(original_df['temperature'] > 10, 'too hot', np.where(original_df['temperature'] < 5, 'too cool', 'just right')) # 转换成独立的DataFrame result_df = pd.DataFrame(status_array, columns=['status'])
方法二:用pd.cut按区间映射标签
如果你的条件是明确的区间划分,用pd.cut会更直观:
# 定义区间边界和对应标签 bins = [-float('inf'), 5, 10, float('inf')] labels = ['too cool', 'just right', 'too hot'] # 生成结果并转为独立DataFrame result_df = pd.cut(original_df['temperature'], bins=bins, labels=labels, include_lowest=True).to_frame(name='status')
验证结果
运行后result_df就是你要的独立DataFrame,内容如下:
| status |
|---|
| too cool |
| just right |
| too hot |
| just right |
| too hot |
| too cool |
这两种方法都是Pandas推荐的向量化操作,比逐行循环快得多,而且能保证结果和原数据的行顺序完全对应。如果你的原始数据有其他列,只需要把original_df['temperature']替换成你要判断的目标列名就行。
内容的提问来源于stack exchange,提问作者bbartling
相关产品推荐
相关产品推荐

