如何在Pandas中使用apply结合索引创建新列?
解决方法
首先,你使用apply时,lambda里的x是每行对应的Series对象,它的name属性就是该行的索引值,所以不用index(x),直接调用x.name即可。
正确的apply写法:
df['col3'] = df.apply(lambda x: x['col1'] + x['col2'] + x.name, axis=1)
注意必须加上axis=1,指定按行应用函数——默认axis=0是按列处理,不加会导致报错。
更高效的替代方案
apply本质是逐行遍历,大数据量下效率偏低,你可以直接用pandas的向量化运算实现,代码更简洁且速度更快:
df['col3'] = df['col1'] + df['col2'] + df.index
内容的提问来源于stack exchange,提问作者Christos Grigoriadis
相关产品推荐
相关产品推荐

