我对Python非常陌生,在pandas中执行一项非常基本的任务时遇到了问题。我试图创建一个名为RACE的新列(变量),它基于RAC1P_RC1中的值。我已经尝试了各种方法来重新编码RACE(loc、apply、lambda),但它根本不会更新它的值,即使参数为true。例如,我尝试使用代码
def f(x):
if x['RAC1P_RC1'] == 1: return 1
else: return 0
acs['RACE'] = acs.apply(f, axis=1)
当我查看数据帧时,RACE中的所有情况都有一个值0,即使RAC1P_RC1等于1。这里我似乎缺少了一些非常基本的东西,因为这是熊猫最简单的任务之一,而我却做不到。任何帮助都将不胜感激
检查“RAC1P_RC1”列的数据类型,确保它不是对象数据类型。如果其对象数据类型为,则条件(如果x['RAC1P\u RC1']==1)将始终返回False
此外,您还可以使用.loc使代码更快,如下所示:
您可以直接检查您的条件,这将给您一系列真/假,然后通过
astype()
方法将该系列类型转换为int,您将得到相应的二进制值:或
您还可以使用
view()
方法代替astype()
来实现相同的功能:相关问题 更多 >
编程相关推荐