我正在尝试编写一个函数并将其应用于数据帧中的多个字段。 该函数接受colA1列,并根据条件语句为新列colB2赋值。 如果给定了一个列(例如colA1),这个函数就可以工作,但是如何编写它来迭代一个列呢 列列表,返回相应数量的新列?你知道吗
以下函数适用于单个列:
dict = {'colA1':[2,6,8,28,5],
'colA2': [38,6,14,63,3],
'colA3':[90,40,80,98,3]}
df = pd.DataFrame(dict)
def function(x):
if x <= 10:
return '<= 10'
elif x > 10:
return '> 10'
df['colB1']=df['colA1'].apply(function)
df['colB1']
这将返回:
0 <= 10
1 <= 10
2 <= 10
3 > 10
4 <= 10
我尝试将其应用于多个列,如下所示: Update Multiple Columns using Pandas Apply Function
df[['colB1', 'colB2', 'colB3']]=df[['colA1', 'colA2', 'colA3']].apply(function)
但结果是: ValueError:('序列的真值不明确。使用a.empty、a.bool()、a.item()、a.any()或a.all()。','发生在索引colA1')
这应该够了
输出
如果这确实是您想要做的,一个更快的选择是^{} :
您还可以尝试使用^{} 作为函数:
相关问题 更多 >
编程相关推荐