将函数应用于列的所有元素(字符串列表)以转换为浮点数
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])
如果我理解正确的话这会起作用
我的数据框 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])
如果我理解正确的话这会起作用