【发布时间】:2018-05-26 05:50:56
【问题描述】:
我目前有一列字符串值,如下所示:
d = {'col1': '(100,200),(150,124),(135,137)'}
我需要将其更改为浮点值以变为:
d = {'col1': [(100,200),(150,124),(135,137)]}
任何帮助将不胜感激。
【问题讨论】:
标签: python dictionary
我目前有一列字符串值,如下所示:
d = {'col1': '(100,200),(150,124),(135,137)'}
我需要将其更改为浮点值以变为:
d = {'col1': [(100,200),(150,124),(135,137)]}
任何帮助将不胜感激。
【问题讨论】:
标签: python dictionary
让我们尝试使用ast.literal_eval。您可以将字符串包裹在大括号中并对其进行安全评估:
import ast
d = {k : ast.literal_eval(f'[{v}]') for k, v in d.items()}
pd.DataFrame(d)
col1
0 (100, 200)
1 (150, 124)
2 (135, 137)
【讨论】:
df.assign(coordinates=[literal_eval(f'[{v}]') for v in df.coordinates])
首先,在字符串周围添加方括号:
{'col1': '[(100, 200), (150, 124), (135, 137)]'}
稍后,eval () 那个字符串。
d['col1'] = '[' + d['col1'] + ']'
d['col1'] = eval(d['col1'])
print(d)
# {'col1': [(100, 200), (150, 124), (135, 137)]}
pd.DataFrame(d)
【讨论】: