将类似字符串的列表转换为Python数据框

时间:2018-09-18 11:09:07

标签: python-3.x pandas dataframe

我有一个字符串变量,其中包含类似值的列表

如何将字符串值转换为数据帧?

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 会引发异常。 如何克服这个问题?

1 个答案:

答案 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