首页 > 解决方案 > 如何在 Python 中基于现有列创建新列

问题描述

回复:

回复

我需要根据现有的“时间”列创建一个“响应”列。我的响应变量必须为从 1 秒到 60 秒以及从 240 秒到 300 秒的时间值显示“否”。并为所有剩余值显示“是”。

我尝试了下面的代码,但它只是为所有“时间”值显示“否”,而不考虑给定条件。

数据集:

数据集

dataset['Y'] = np.where(dataset["Time"] > 60 & (dataset["Time"] < 240 ), 'yes', 'no')

标签: pythonpandas

解决方案


def label(row):
    if row['Time'] >= 1 and row['Time'] < 60:
        return("no")
    elif row['Time'] >= 240 and row['Time'] < 300:
        return("no")
    else:
        return("yes")

dataset['Y'] = dataset.apply(lambda row: label(row), axis=1)

在您的代码中,您的条件是错误的,因此它不起作用。


推荐阅读