python - 如何将 Pandas DataFrame 的列转换为单独的 dicts,其中 dictnames 是列名?
问题描述
我想将 Pandas DataFrame 转换为单独的 dicts,其中 dict 的名称是列名称,并且所有 dics 具有相同的索引。
数据框如下所示:
cBmsExp cCncC cDnsWd
PlantName
A.gre 2.5 0.45 896.8
A.rig 2.5 0.40 974.9
A.tex 3.5 0.45 863.1
结果应该是:
cBmsExp = {"A.gre":2.5, "A.rig": 2.5, "A.tex": 3.5}
cCncC = {"A.gre":0.45, "A.rig": 0.4, "A.tex": 0.45}
cDnsWd = {"A.gre":898.8, "A.rig": 974.9, "A.tex": 863.1}
我无法弄清楚列名如何成为 Python 代码中变量的名称。
我经历了一堆堆栈溢出问题和答案,但我没有在其中找到这种类型的问题。
非常感谢您对代码的建议!
解决方案
不推荐,更好的方法是创建 dicts 的 dict 并按键选择:
d = df.to_dict()
print (d)
{'cBmsExp': {'A.gre': 2.5, 'A.rig': 2.5, 'A.tex': 3.5},
'cCncC': {'A.gre': 0.45, 'A.rig': 0.4, 'A.tex': 0.45},
'cDnsWd': {'A.gre': 896.8, 'A.rig': 974.9, 'A.tex': 863.1}}
print (d['cBmsExp'])
{'A.gre': 2.5, 'A.rig': 2.5, 'A.tex': 3.5}
但可能,例如globals
:
for k, v in d.items():
globals()[k] = v
print (cBmsExp)
{'A.gre': 2.5, 'A.rig': 2.5, 'A.tex': 3.5}
推荐阅读
- python - datetime ISO 周表示一年中的第一天和最后一天都在同一周
- python - Flask, Right way to delete record and related files/images
- html - How do I center my embedded youtube iframe?
- reactjs - Firefox 无法在 wss://alpha.processretina.com/sockjs-node 建立与服务器的连接?
- javascript - 将日期时间参数与键值匹配
- ansible - 在ansible中将文件行转换为字典
- java - 如何在 Android TV 上获取可用的电视输入源并以编程方式更改
- c# - 多个PDF MemoryStreams的iText7合并不起作用
- javascript - Javascript 复制数组。更改会影响两个数组
- mysql - 如何在 Windows 10 机器上禁用 MySQL 8.0 中的 secure_file_priv?