如何对pandas DataFrame中列表列的每个元素执行指定函数操作?
实现方法
你可以直接在apply传入的匿名函数中对列表内部元素做批量函数调用,完全不需要手动写循环或者调用iterrows,有两种常用写法:
写法1:列表推导实现(可读性最高)
data['y'] = data['y'].apply(lambda lst: [float(item) for item in lst])
写法2:结合map实现
data['y'] = data['y'].apply(lambda lst: list(map(float, lst)))
原理解释
data['y'].apply()本身是遍历列中每一个元素(也就是你存储的每个列表),传入的匿名函数接收每一行的列表作为入参lst- 匿名函数内部对列表的所有元素调用
float,就实现了你想要的“对每个列表里的每个元素调用指定函数”的效果,等价于你设想的两层apply逻辑
内容的提问来源于stack exchange,提问作者MiiiiiiiiKe
相关产品推荐
相关产品推荐

