python - 如何在 Python 中基于现有列创建新列
问题描述
回复:
我需要根据现有的“时间”列创建一个“响应”列。我的响应变量必须为从 1 秒到 60 秒以及从 240 秒到 300 秒的时间值显示“否”。并为所有剩余值显示“是”。
我尝试了下面的代码,但它只是为所有“时间”值显示“否”,而不考虑给定条件。
数据集:
dataset['Y'] = np.where(dataset["Time"] > 60 & (dataset["Time"] < 240 ), 'yes', 'no')
解决方案
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)
在您的代码中,您的条件是错误的,因此它不起作用。
推荐阅读
- file - Windows 10 上的文件资源管理器中的“关闭搜索”按钮是否有键盘快捷键?
- javascript - “未处理的拒绝(TypeError):无法读取未定义的属性'dispatch'”react-redux错误
- spring - Spring Boot + Liquibase + Gradle + Testcontainers / 找不到配置
- xamarin - 有没有办法可以消除拥有 App.Xaml 并将资源添加到 App.Xaml.cs 的需要?
- javascript - 无效的 Hook 调用 - React Hooks
- jquery - POST 请求以 GET 形式发送
- python - 如何使用 python-crontab 模块以编程方式在 Windows 中调度 cron?
- testng - 我们可以在 TestNG DataProviders 中传递 MethodName
- javascript - Returning boolean from mongoose .exists function
- python - Python 2 与 Python 3 - Popen.poll 的返回值的差异