Pandas 条件If语句:行中的If值以字符串中的字母开头…;用相应的值设置另一列
我用字符串填充了“Field_Type”列,并希望使用if语句派生“Units”列中的值 因此,单位表示期望的结果。本质上,我想指出正在发生的活动类型 我尝试使用下面的代码来执行此操作,但它无法运行(请参阅下面的屏幕截图以了解错误)。非常感谢您的帮助Pandas 条件If语句:行中的If值以字符串中的字母开头…;用相应的值设置另一列,pandas,numpy,dataframe,Pandas,Numpy,Dataframe,我用字符串填充了“Field_Type”列,并希望使用if语句派生“Units”列中的值 因此,单位表示期望的结果。本质上,我想指出正在发生的活动类型 我尝试使用下面的代码来执行此操作,但它无法运行(请参阅下面的屏幕截图以了解错误)。非常感谢您的帮助 在您的文本中,您谈论的是字段类型,但在您的示例中使用的是字段名称。哪一个好 您希望执行以下操作: create_table[create_table['Field_Type'].str.startwith('W'),'Units']='MW' 创
在您的文本中,您谈论的是
字段类型
,但在您的示例中使用的是字段名称
。哪一个好
您希望执行以下操作:
create_table[create_table['Field_Type'].str.startwith('W'),'Units']='MW'
创建表格[创建表格['Field\u Type']。str.startwith('R'),'Units']=“MVar”
创建表格[创建表格['Field\u Type']。str.startwith('V'),'Units']=“每单位”
您可以编写一个函数来定义条件,然后在数据帧上使用apply
并传递函数
def unit_mapper(row):
if row['Field_Type'].startswith('W'):
return 'MW'
elif 'R' in row['Field_Type']:
return 'MVar'
elif 'V' in row['Field_Type']:
return 'Per Unit'
else:
return 'N/A'
然后
create_table['Units'] = create_table.apply(unit_mapper, axis=1)
错误:(“str”对象没有属性“str”,发生在索引0处)
create_table['Units'] = create_table.apply(unit_mapper, axis=1)