1 回答

TA贡献1785条经验 获得超4个赞
如果"[('ALMAFUERTE', 328), ('ALAMAFUERTE', 1), ('ALMFUERTE', 1), ('ALMZFUERTE', 1)]"输入的是,则需要使用eval()方法将其转换为列表。
>>> l = "[('ALMAFUERTE', 328), ('ALAMAFUERTE', 1), ('ALMFUERTE', 1), ('ALMZFUERTE', 1)]"
>>> eval(l)
[('ALMAFUERTE', 328), ('ALAMAFUERTE', 1), ('ALMFUERTE', 1), ('ALMZFUERTE', 1)]
然后,您可以执行以下操作:
>>> l = [('ALMAFUERTE', 328), ('ALAMAFUERTE', 1), ('ALMFUERTE', 1), ('ALMZFUERTE', 1)]
>>> [{i :j} for i, j in l]
[{'ALMAFUERTE': 328}, {'ALAMAFUERTE': 1}, {'ALMFUERTE': 1}, {'ALMZFUERTE': 1}]
如果您使用的熊猫数据框架结构如下:
>>> l = [('ALMAFUERTE', 328), ('ALAMAFUERTE', 1), ('ALMFUERTE', 1), ('ALMZFUERTE', 1)]
>>> df = pd.DataFrame(l, columns=['name', 'val'])
name val
0 ALMAFUERTE 328
1 ALAMAFUERTE 1
2 ALMFUERTE 1
3 ALMZFUERTE 1
你可以这样做:
>>> d = []
>>> for _, row in df.iterrows():
d.append({row['name']:row['val']})
>>> print(d)
[{'ALMAFUERTE': 328}, {'ALAMAFUERTE': 1}, {'ALMFUERTE': 1}, {'ALMZFUERTE': 1}]
添加回答
举报