Python 如何使用dtype liste而不是str导入csv列

Python 如何使用dtype liste而不是str导入csv列,python,python-3.x,pandas,Python,Python 3.x,Pandas,我有一个csv文件。 一列是某个城镇的平均海拔列表。 例如,他的一个元素可以是[571.0428.0600.0410.0588.0520.0649.0374.0] 当我这样做时: data=pd.read_csv('test.csv', sep=";", encoding="utf-8-sig",dtype={'Mean_Altitude':list}) a=data['Mean_Altitude'][0] print a print type(a) 我得到: [571.0, 428.0,

我有一个csv文件。 一列是某个城镇的平均海拔列表。 例如,他的一个元素可以是[571.0428.0600.0410.0588.0520.0649.0374.0]

当我这样做时:

data=pd.read_csv('test.csv', sep=";", encoding="utf-8-sig",dtype={'Mean_Altitude':list})

a=data['Mean_Altitude'][0]
print a
print type(a)
我得到:

[571.0, 428.0, 600.0, 410.0, 588.0, 520.0, 649.0, 374.0]
<type 'unicode'>
[571.0428.0600.0410.0588.0520.0649.0374.0]
我想要一份浮动的清单。。。。不是unicode或字符串


你知道我怎么做吗?

你可以去掉[]的部分,然后在
上拆分字符串,

s = '[571.0, 428.0, 600.0, 410.0, 588.0, 520.0, 649.0, 374.0]'
[float(substring) for substring in s[1:-1].split(', ')]

如果您想真正确定字符串确实是一个列表,可以使用正则表达式检查它。使用
pd.read\u csv
converters
参数中的
ast.literal\u eval

from io import StringIO
import pandas as pd
import ast

txt = """A|Mean_Altitude|B
1|[571.0, 428.0, 600.0, 410.0, 588.0, 520.0, 649.0, 374.0]|X
2|[571.0, 428.0, 600.0, 410.0, 588.0, 520.0, 649.0, 374.0]|Y"""

converters = {'Mean_Altitude': ast.literal_eval}
df = pd.read_csv(StringIO(txt), sep='|', converters=converters)

print(df)

   A                                      Mean_Altitude  B
0  1  [571.0, 428.0, 600.0, 410.0, 588.0, 520.0, 649...  X
1  2  [571.0, 428.0, 600.0, 410.0, 588.0, 520.0, 649...  Y
将字符串
txt
作为示例
csv

from io import StringIO
import pandas as pd
import ast

txt = """A|Mean_Altitude|B
1|[571.0, 428.0, 600.0, 410.0, 588.0, 520.0, 649.0, 374.0]|X
2|[571.0, 428.0, 600.0, 410.0, 588.0, 520.0, 649.0, 374.0]|Y"""

converters = {'Mean_Altitude': ast.literal_eval}
df = pd.read_csv(StringIO(txt), sep='|', converters=converters)

print(df)

   A                                      Mean_Altitude  B
0  1  [571.0, 428.0, 600.0, 410.0, 588.0, 520.0, 649...  X
1  2  [571.0, 428.0, 600.0, 410.0, 588.0, 520.0, 649...  Y
平均海拔
是一列列表

df.Mean_Altitude.loc[0][2]

600.0
以及
类型

type(df.Mean_Altitude.loc[0])

list

嗨,非常感谢你的回答。然而,当我尝试它时,我得到了以下错误:文件“”,行未知^SyntaxError:解析时出现意外的EOF,我有一些“无”值,这可能是原因。