首页 > 解决方案 > 如何将字符串列表转换为列表列表?

问题描述

我是编程和stackoverflow的新手。抱歉,这似乎太基本了。我试图把这个:

我正在尝试训练人工智能来根据历史数据预测汽车的目的地。它在列内,我必须遍历所有列。我是一个列表,它正在工作,但在一个列中,它不是出于某种原因。

我在 anaconda , jupyter notebook 的 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]

列中没有任何变化。

标签: pythonpandaslist

解决方案


与列表推导一起使用apply以拆分列表的每个值,并强制转换为floats:

lst = ['55.7492,12.5405', '55.7492,12.5405', '55.7492,12.5406', '55.7492,12.5406']
df = pd.DataFrame({'column':[lst,lst]})

df['locations'] = df['column'].apply(lambda x: [list(map(float,y.split(','))) for y in x])
print (df)

                                              column  \
0  [55.7492,12.5405, 55.7492,12.5405, 55.7492,12....   
1  [55.7492,12.5405, 55.7492,12.5405, 55.7492,12....   

                                           locations  
0  [[55.7492, 12.5405], [55.7492, 12.5405], [55.7...  
1  [[55.7492, 12.5405], [55.7492, 12.5405], [55.7...  

推荐阅读