我目前正在尝试使用ast.literal_eval
方法将列表列表的字符串表示形式转换为列表列表列表。我试着看看这个社区的以下问题:
但所提供的解决方案和答案似乎并不适用于我的情况。在
我目前有一个Pandas数据帧的形式(示例):
industry index entities
cars 0 [ ['car1', 'it'], ['them', 'car2', 'car3'] ]
cars 1 [ ['car4', 'its'], ['car5', 'car6'] ]
当我使用pandas.read_csv
加载CSV文件时,entities
列中的条目是列表的字符串表示。我试图使用ast.literal_eval
将它们转换为列表,但发生了以下情况:
我知道在ast.literal_eval
中使用的参数必须是Python文本结构,但是我传递的参数中没有任何内容不是Python文本,所以这似乎不是问题所在。在
为了提供一些额外的背景信息,我以前用同样的方法执行了一个相同的操作,效果很好。但是,我最近修改了原始数据帧,删除了单词“the”的实例
是什么导致了这个错误?如有任何提示,我们将不胜感激。非常感谢。在
编辑
df.head(2).to_dict()
返回以下内容。注意,这个例子与原来的数据框不同,因为我的工作框架是这样的:
{'industry': {0: 'automotiveEngineering', 1: 'automotiveEngineering'},
'index': {0: 0, 1: 1},
'entities': {0: "[['Norway', 'it'], ['EQC—and', 'it', 'EQC', 'EQC'], ['Mercedes-Benz EQC Edition 1886 electric SUV', 'it', 'it', 'EQC400 4Matic crossover']]",
1: '[[\'Ford Fusion\', \'Fusion\', \'Fusion\', \'Fusion\'], ["2013–2016 Ford Fusion sedans.automaker \'s", \'automaker\'], [\'Ford\', \'Ford\'], [\'faulty shifter cables that can cause rollaways\', \'these shifter cables , which can break off transmission due to a bad bushing at connection point\'], [\'these bushings\', \'them\']]'}}
我也尝试过循环遍历每一行并分别修改每个实体,但仍然会出现相同的错误。在
我还想补充一下,当我在一行上运行ast.literal_eval
时,它会毫无问题地返回适当的值。在
编辑2
我通过跑步实现了我的目标:
df['column'] = df['column'].apply(ast.literal_eval)
但不幸的是,这并不能回答我最初的问题:是什么导致了格式错误的字符串/节点错误。在
目前没有回答
相关问题 更多 >
编程相关推荐