Python 如何基于每个单元格的值并使用数字索引一次更改多列中的值?
在df中,从索引4到结尾的列中的所有单元格都有空值或两个可能字符串中的一个,让我们使用“a”和“b”。我想用一个数字替换每个值:“a”表示1,“b”表示2,null表示0。我更愿意同时更改多个列,而不是使用循环 我尝试将apply与lambda一起使用,因为它适用于早期的项目,但不适用于此项目,并且当我仅在一列上使用它时,它会将所有内容更改为0。我还尝试用下面的另一段代码来赋值Python 如何基于每个单元格的值并使用数字索引一次更改多列中的值?,python,pandas,conditional-statements,multiple-columns,Python,Pandas,Conditional Statements,Multiple Columns,在df中,从索引4到结尾的列中的所有单元格都有空值或两个可能字符串中的一个,让我们使用“a”和“b”。我想用一个数字替换每个值:“a”表示1,“b”表示2,null表示0。我更愿意同时更改多个列,而不是使用循环 我尝试将apply与lambda一起使用,因为它适用于早期的项目,但不适用于此项目,并且当我仅在一列上使用它时,它会将所有内容更改为0。我还尝试用下面的另一段代码来赋值 df.iloc[:, 4:] = df.iloc[:, 4:].apply(lambda x:1 if x == 'a
df.iloc[:, 4:] = df.iloc[:, 4:].apply(lambda x:1 if x == 'a' else(2 if x == 'b' else 0))
df[df.iloc[:,4]=='a',4] = 1
级数的真值是模糊的。在索引[B]处使用a.empty、a.bool()、a.item()、a.any()或a.all().,'
“Series”对象是可变的,因此不能对它们进行散列您可以使用replace和fillna方法
df.iloc[:, 4:] = df.iloc[:, 4:].replace({'a':1,'b':2}).fillna(0)