将函数应用于列的所有元素(字符串列表)以转换为浮点数

Apply function to all the elements (lists of strings) of a column to convert into floats

我的数据框 df 有一列 'c' 字符串列表。例如第一个元素是 df.loc['index_0','c'] = ['10', ' 20'].

我想将列表中的所有元素转换为浮点数。例如 df 的第一个元素应该是 df.loc['index_0','c'] = [10.0, 20.0].

我知道如何使用 list(map(float, df.loc['index_0','c'])).

一次处理一个列表

我想对所有列表都这样做,我试过这个:df['c'].apply(lambda x: list(map(float, x))) 但我得到一个错误:'float' object is not iterable

我认为错误是由于列 c 中存在 NaN 值造成的,解决此问题的一种方法是在应用映射函数之前删除 NaN 值:

df['c'] = df['c'].dropna().apply(lambda x: list(map(float, x)))
df['C'].apply(lambda x: [float(element) for element in x])

如果我理解正确的话这会起作用