我在pandas列的列表中有值,例如:
df
id col1
1 [51.97559, 4.12565]
2 [52.97559, 3.12565]
3 [49.97559, 5.12565]
但是当我将col1追加到列表时,我引用了每个子列表中的第一个元素。
new_list = []
for val in df['col1'].values:
new_list.append(val)
我得到了:
[['51.97559', 4.12565]
['52.97559', 3.12565]
['49.97559', 5.12565]]
但我需要:
[[51.97559, 4.12565]
[52.97559, 3.12565]
[49.97559, 5.12565]]
答案 0 :(得分:3)
您可以将列表的所有元素投射到float
new_list = []
for val in df['col1'].values:
new_list.append(list(map(float, val)))
答案 1 :(得分:3)
抛弃循环。让我们对此进行矢量化。
new_list = np.array(df['col1'].tolist(), dtype=float).tolist()
<强>声明强>;如果您的列表大小不同,这将无法工作。在这种情况下,您需要迭代,但您不需要map
(也就是说,如果您想要表现):
new_list = [
[float(j) for j in i] for i in df['col1'].tolist()
]