如何将字符串列表转换为列表列表?

时间:2019-03-27 11:02:16

标签: python pandas list

我是编程和stackoverflow中的新手。抱歉,这似乎太基本了。 我正试图扭转这一点:

我正在尝试训练AI以基于历史数据来预测汽车的目的地。 它在列中,我必须遍历所有列。 我只有一个列表可以使用,但是在某列中却并非出于某种原因。

我正在使用jupyter笔记本电脑Anaconda的Windows 10上尝试此操作

我正试图解决这个问题

lst = ['55.7492,12.5405', '55.7492,12.5405', '55.7492,12.5406', '55.7492,12.5406']

进入此

lst = [[55.7492,12.5405], [55.7492,12.5405], [55.7492,12.5406], [55.7492,12.5406]]

我在csv文件中有一列包含很多内容的列。

我尝试过这样的动作:


[[x] for x in lst]

[['55.7492,12.5405'],
 ['55.7492,12.5405'],
 ['55.7492,12.5406'],
 ['55.7492,12.5406']]

因此它可以在csv之外找到,但是当我尝试对列中的每个框进行操作时:

for stuff in data['column']:
    [[x] for x in stuff]

for stuff in data_train['locations']:
    [map(int,x.split()) for x in stuff]

列中没有任何变化。

4 个答案:

答案 0 :(得分:2)

结合列表理解使用$("#id").toggleClass('disable'); 将列表的每个值除以apply并转换为, s:

float

答案 1 :(得分:0)

您应该分配列表理解的输出:

for col in columns:  # where columns is a list of your columns
    data[col] = [[x] for x in data[col]]

或仅在一列上,就可以完成:

data_train['locations'] = [map(int,x.split()) for x in data_train['locations']]

因为data['column']是元素列表,并且当您对其进行循环时,stuff将在每次迭代中都是不同的行元素,因此不是列表。

答案 2 :(得分:0)

尝试:

New = [str(val).split(",") for val in lst]
print(New)

输出:

[['55.7492', '12.5405'], ['55.7492', '12.5405'], ['55.7492', '12.5406'], ['55.7492', '12.5406']]

答案 3 :(得分:0)

我认为最有效的方法是使用ast.literal_eval()

import ast
y = [list(ast.literal_eval(x)) for x in lst]

现在,如果您有一列要转换为列表的字符串列表,则可以使用:

df['new_col'] =df['col'].apply(lambda x: [list(ast.literal_eval(y)) for y in x ])