blm*_*ore 6 python dictionary tabular
这是我当前的数据结构:
{'bin1': {'A': 14545,
'B': 18579,
'C': 5880,
'D': 20771,
'E': 404396},
'bin2': {'A': 13200,
'B': 12279,
'C': 5000,
'D': 16766,
'E': 200344},
[...] }
Run Code Online (Sandbox Code Playgroud)
我想以以下形式写表:
A B C D E
bin1 14545 18579 5880 20771 494396
bin2 13200 12279 5000 16766 200344
...
Run Code Online (Sandbox Code Playgroud)
目前,我正在使用原始打印循环(其中d ==上述字典):
# print the table header
labs = [i for i in d[d.keys()[0]]]
print "bin" + "\t" + "\t".join(labs)
# loop and print the values
for j in d:
print j + "\t" + "\t".join(map(str, [d[j][q] for q in d[j]]))
Run Code Online (Sandbox Code Playgroud)
这似乎有效(尽管显然是无序的),但是在我的输出中,我发现一些嵌套的字典并不包含所有AE字段。我想做到这一点的一种方法是重建字典,也许使用更合适的矩阵类型数据结构并用来填充缺失的值0,但是鉴于我手头有这个巨大的嵌套字典,有一种更聪明的打印方法上面显示的输出可以处理缺少的元素?
使用熊猫:
import pandas as pd
data = {'bin1': {'A': 14545,
'B': 18579,
'C': 5880,
'D': 20771,
'E': 404396},
'bin2': {'A': 13200,
'D': 16766,
'E': 200344},
}
df = pd.DataFrame(data).T
df.fillna(0, inplace=True)
print(df)
Run Code Online (Sandbox Code Playgroud)
版画
A B C D E
bin1 14545 18579 5880 20771 404396
bin2 13200 0 0 16766 200344
Run Code Online (Sandbox Code Playgroud)
该df.fillna(0)替换丢失的值0。
| 归档时间: |
|
| 查看次数: |
2553 次 |
| 最近记录: |