Python 熊猫:用“熊猫”创建新专栏;是”;如果预先存在的列包含一些值和;否";如果列的值为'';

Python 熊猫:用“熊猫”创建新专栏;是”;如果预先存在的列包含一些值和;否";如果列的值为'';,python,pandas,Python,Pandas,我正在尝试在我的“df”中添加一个列,如果预先存在的列包含某个值,则该列包含“Yes”,如果该列的值为“”,则该列显示“No”(请注意“”之间的空格) 下面是一个例子: 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

我正在尝试在我的“df”中添加一个列,如果预先存在的列包含某个值,则该列包含“Yes”,如果该列的值为“”,则该列显示“No”(请注意“”之间的空格)

下面是一个例子:

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']有任何值的情况下,它应该说是


我应该在代码中修复什么?

试试这个。它比大型数据集上的lambda函数快得多:

my_df['Direct debit'] = np.where(my_df['Category'] != '', 'YES', 'NO')

使用
np.where

import numpy as np
my_df['Direct debit'] = np.where(my_df['Category'] != '', 'Yes', 'No')

顺便说一下,请记住,
'
'
,是不同的

什么是
类别