我有一个字符串变量,其中包含类似值的列表
如何将字符串值转换为数据帧?
string = '[[2017, 1050], [2016, 1069], [2015, 1173]]'
pd.DataFrame([item for item in string])
# Giving wrong results
需要如下所示的结果
0 1
0 2017 1050
1 2016 1069
2 2015 1173
第二列还包含特殊字符,例如(s)-NA w *-等
如果输入的数据类型无效,ast.literal_eval 会引发异常。 如何克服这个问题?
答案 0 :(得分:1)
使用ast,不需要列表理解:
import ast
string = '[[2017, 1050], [2016, 1069], [2015, 1173]]'
df = pd.DataFrame(ast.literal_eval(string))
print (df)
0 1
0 2017 1050
1 2016 1069
2 2015 1173