将pandas列中的列表追加到python列表

时间:2018-05-10 09:25:18

标签: python list pandas dataframe

我在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]]

2 个答案:

答案 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()
]