python - Pandas:如果预先存在的列包含某些值,则使用“是”创建一个新列,如果该列的值为“”,则创建一个“否”
问题描述
我试图在我的“df”中添加一个包含“是”的列,以防预先存在的列包含一些值,并且如果列的值为“”,则显示“否”(注意“”之间的空格) .
这是一个例子:
my_dict = {'Products': {0: 0, 1: 1, 2: 2}, 'Prices': {0: ' ', 1: ' ', 2: 'C'}}
my_df = pd.DataFrame(my_dict)
my_df['Direct debit'] = my_df['Category'].apply(lambda x: "Yes" if not "' '" else "NO")
返回:
在所有情况下,“输出”都是“否”,但它应该在 my_df['Category'] 有任何值的地方说“是”。
我应该在我的代码中修复什么?
解决方案
使用np.where
:
import numpy as np
my_df['Direct debit'] = np.where(my_df['Category'] != '', 'Yes', 'No')
顺便说一句,请记住' '
, ''
, 是不同的
推荐阅读
- javascript - 哪种数据结构最适合这项任务?
- string - MIPS 运行时异常和地址超出范围
- bash - 使用 find 和 xargs 时从 ffmpeg 重命名输出文件名
- gatsby - 在路线之间导航时如何防止 gatsby 布局重新渲染?
- ruby-on-rails - 为什么 simple_form 使用嵌套资源引发“无路由匹配 [POST]“/tenants””错误
- android - 当我单击任何按钮时,应用程序将崩溃
- powershell - 使用 Powershell 脚本将文件复制到 CSV 文件中声明的特定文件夹
- javascript - Highcharts-Vue 图表选项设置后不改变值
- sql - 查询以从 Athena 中的两个表中获取基于日期的行
- flutter - 设置大小和位移问题的 Flutter/Dart 列表