我是编程和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]
列中没有任何变化。
答案 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 ])