如何替换 Pandas 中的面板并将其导出到 excel
How to replace Panel in Pandas and export it to excel
我有这个数据集,我想将它导出为 excel 文件(如图),分两张('Fabrication' 和 'REACTOR')列标题应该是 'Waste_ads (tons)' 等等。行索引 (-5, -4, -3, - 2...5)
data = {'Fabrication': {'Waste_ads (tons)': {-5.0: 0.0, -4.0: 0.0, -3.0: 0.0, -2.0: 0.0, -1.0: 0.0, 0.0: 0.0, 1.0: 0.0, 2.0: 0.0, 3.0: 0.0, 4.0: 0.0, 5.0: 0.0}, 'Uox_spent (tons)': {-5.0: 0.0, -4.0: 0.0, -3.0: 0.0, -2.0: 0.0, -1.0: 0.0, 0.0: 0.0, 1.0: 0.0, 2.0: 0.0, 3.0: 0.0, 4.0: 0.0, 5.0: 0.0}, 'Depu (tons)': {-5.0: 0.0, -4.0: 0.0, -3.0: 0.0, -2.0: 42752.30175388285, -1.0: 8083.238467166332, 0.0: 8083.238467166332, 1.0: 8083.238467166332, 2.0: 8083.238467166332, 3.0: 8083.238467166332, 4.0: 8083.238467166332, 5.0: 8083.238467166332}, 'U (tons)': {-5.0: 0.0, -4.0: 0.0, -3.0: 0.0, -2.0: 0.0, -1.0: 0.0, 0.0: 0.0, 1.0: 0.0, 2.0: 0.0, 3.0: 0.0, 4.0: 0.0, 5.0: 0.0}, 'Uox2_spent (tons)': {-5.0: 0.0, -4.0: 0.0, -3.0: 0.0, -2.0: 0.0, -1.0: 0.0, 0.0: 0.0, 1.0: 0.0, 2.0: 0.0, 3.0: 0.0, 4.0: 0.0, 5.0: 0.0}, 'Uox2 (tons)': {-5.0: 0.0, -4.0: 0.0, -3.0: 0.0, -2.0: 0.0, -1.0: 0.0, 0.0: 0.0, 1.0: 0.0, 2.0: 0.0, 3.0: 0.0, 4.0: 0.0, 5.0: 0.0}, 'Pu (tons)': {-5.0: 0.0, -4.0: 0.0, -3.0: 0.0, -2.0: 0.0, -1.0: 0.0, 0.0: 0.0, 1.0: 0.0, 2.0: 0.0, 3.0: 0.0, 4.0: 0.0, 5.0: 0.0}, 'Waste_mox (tons)': {-5.0: 0.0, -4.0: 0.0, -3.0: 0.0, -2.0: 0.0, -1.0: 0.0, 0.0: 0.0, 1.0: 0.0, 2.0: 0.0, 3.0: 0.0, 4.0: 0.0, 5.0: 0.0}, 'Waste_uox2 (tons)': {-5.0: 0.0, -4.0: 0.0, -3.0: 0.0, -2.0: 0.0, -1.0: 0.0, 0.0: 0.0, 1.0: 0.0, 2.0: 0.0, 3.0: 0.0, 4.0: 0.0, 5.0: 0.0}, 'Waste_uox1 (tons)': {-5.0: 0.0, -4.0: 0.0, -3.0: 0.0, -2.0: 0.0, -1.0: 0.0, 0.0: 0.0, 1.0: 0.0, 2.0: 0.0, 3.0: 0.0, 4.0: 0.0, 5.0: 0.0}, 'Adsfuel_spent (tons)': {-5.0: 0.0, -4.0: 0.0, -3.0: 0.0, -2.0: 0.0, -1.0: 0.0, 0.0: 0.0, 1.0: 0.0, 2.0: 0.0, 3.0: 0.0, 4.0: 0.0, 5.0: 0.0}, 'Mox (tons)': {-5.0: 0.0, -4.0: 0.0, -3.0: 0.0, -2.0: 0.0, -1.0: 0.0, 0.0: 0.0, 1.0: 0.0, 2.0: 0.0, 3.0: 0.0, 4.0: 0.0, 5.0: 0.0}, 'Nat (tons)': {-5.0: 0.0, -4.0: 0.0, -3.0: 0.0, -2.0: 0.0, -1.0: 0.0, 0.0: 0.0, 1.0: 0.0, 2.0: 0.0, 3.0: 0.0, 4.0: 0.0, 5.0: 0.0}, 'Uox (tons)': {-5.0: 0.0, -4.0: 0.0, -3.0: 0.0, -2.0: 4649.423, -1.0: 5528.496016, 0.0: 6407.569031999999, 1.0: 2637.219048, 2.0: 2637.219048, 3.0: 2637.219048, 4.0: 2637.219048, 5.0: 2637.219048}, 'Mox_spent (tons)': {-5.0: 0.0, -4.0: 0.0, -3.0: 0.0, -2.0: 0.0, -1.0: 0.0, 0.0: 0.0, 1.0: 0.0, 2.0: 0.0, 3.0: 0.0, 4.0: 0.0, 5.0: 0.0}, 'Ma (tons)': {-5.0: 0.0, -4.0: 0.0, -3.0: 0.0, -2.0: 0.0, -1.0: 0.0, 0.0: 0.0, 1.0: 0.0, 2.0: 0.0, 3.0: 0.0, 4.0: 0.0, 5.0: 0.0}, 'Adsfuel (tons)': {-5.0: 0.0, -4.0: 0.0, -3.0: 0.0, -2.0: 0.0, -1.0: 0.0, 0.0: 0.0, 1.0: 0.0, 2.0: 0.0, 3.0: 0.0, 4.0: 0.0, 5.0: 0.0}}, 'REACTOR': {'Waste_ads (tons)': {-5.0: 0.0, -4.0: 0.0, -3.0: 0.0, -2.0: 0.0, -1.0: 0.0, 0.0: 0.0, 1.0: 0.0, 2.0: 0.0, 3.0: 0.0, 4.0: 0.0, 5.0: 0.0}, 'Uox_spent (tons)': {-5.0: 0.0, -4.0: 0.0, -3.0: 0.0, -2.0: 0.0, -1.0: 0.0, 0.0: 0.0, 1.0: 879.0730159999998, 2.0: 1758.1460319999996, 3.0: 2637.219048, 4.0: 3516.292064, 5.0: 4395.3650800000005}, 'Depu (tons)': {-5.0: 0.0, -4.0: 0.0, -3.0: 0.0, -2.0: 0.0, -1.0: 0.0, 0.0: 0.0, 1.0: 0.0, 2.0: 0.0, 3.0: 0.0, 4.0: 0.0, 5.0: 0.0}, 'U (tons)': {-5.0: 0.0, -4.0: 0.0, -3.0: 0.0, -2.0: 0.0, -1.0: 0.0, 0.0: 0.0, 1.0: 0.0, 2.0: 0.0, 3.0: 0.0, 4.0: 0.0, 5.0: 0.0}, 'Uox2_spent (tons)': {-5.0: 0.0, -4.0: 0.0, -3.0: 0.0, -2.0: 0.0, -1.0: 0.0, 0.0: 0.0, 1.0: 0.0, 2.0: 0.0, 3.0: 0.0, 4.0: 0.0, 5.0: 0.0}, 'Uox2 (tons)': {-5.0: 0.0, -4.0: 0.0, -3.0: 0.0, -2.0: 0.0, -1.0: 0.0, 0.0: 0.0, 1.0: 0.0, 2.0: 0.0, 3.0: 0.0, 4.0: 0.0, 5.0: 0.0}, 'Pu (tons)': {-5.0: 0.0, -4.0: 0.0, -3.0: 0.0, -2.0: 0.0, -1.0: 0.0, 0.0: 0.0, 1.0: 0.0, 2.0: 0.0, 3.0: 0.0, 4.0: 0.0, 5.0: 0.0}, 'Waste_mox (tons)': {-5.0: 0.0, -4.0: 0.0, -3.0: 0.0, -2.0: 0.0, -1.0: 0.0, 0.0: 0.0, 1.0: 0.0, 2.0: 0.0, 3.0: 0.0, 4.0: 0.0, 5.0: 0.0}, 'Waste_uox2 (tons)': {-5.0: 0.0, -4.0: 0.0, -3.0: 0.0, -2.0: 0.0, -1.0: 0.0, 0.0: 0.0, 1.0: 0.0, 2.0: 0.0, 3.0: 0.0, 4.0: 0.0, 5.0: 0.0}, 'Waste_uox1 (tons)': {-5.0: 0.0, -4.0: 0.0, -3.0: 0.0, -2.0: 0.0, -1.0: 0.0, 0.0: 0.0, 1.0: 0.0, 2.0: 0.0, 3.0: 0.0, 4.0: 0.0, 5.0: 0.0}, 'Adsfuel_spent (tons)': {-5.0: 0.0, -4.0: 0.0, -3.0: 0.0, -2.0: 0.0, -1.0: 0.0, 0.0: 0.0, 1.0: 0.0, 2.0: 0.0, 3.0: 0.0, 4.0: 0.0, 5.0: 0.0}, 'Mox (tons)': {-5.0: 0.0, -4.0: 0.0, -3.0: 0.0, -2.0: 0.0, -1.0: 0.0, 0.0: 0.0, 1.0: 0.0, 2.0: 0.0, 3.0: 0.0, 4.0: 0.0, 5.0: 0.0}, 'Nat (tons)': {-5.0: 0.0, -4.0: 0.0, -3.0: 0.0, -2.0: 0.0, -1.0: 0.0, 0.0: 0.0, 1.0: 0.0, 2.0: 0.0, 3.0: 0.0, 4.0: 0.0, 5.0: 0.0}, 'Uox (tons)': {-5.0: 0.0, -4.0: 0.0, -3.0: 0.0, -2.0: 0.0, -1.0: 0.0, 0.0: 0.0, 1.0: 3770.349984, 2.0: 3770.3499840000004, 3.0: 3770.3499840000004, 4.0: 3770.3499840000004, 5.0: 3770.3499840000004}, 'Mox_spent (tons)': {-5.0: 0.0, -4.0: 0.0, -3.0: 0.0, -2.0: 0.0, -1.0: 0.0, 0.0: 0.0, 1.0: 0.0, 2.0: 0.0, 3.0: 0.0, 4.0: 0.0, 5.0: 0.0}, 'Ma (tons)': {-5.0: 0.0, -4.0: 0.0, -3.0: 0.0, -2.0: 0.0, -1.0: 0.0, 0.0: 0.0, 1.0: 0.0, 2.0: 0.0, 3.0: 0.0, 4.0: 0.0, 5.0: 0.0}, 'Adsfuel (tons)': {-5.0: 0.0, -4.0: 0.0, -3.0: 0.0, -2.0: 0.0, -1.0: 0.0, 0.0: 0.0, 1.0: 0.0, 2.0: 0.0, 3.0: 0.0, 4.0: 0.0, 5.0: 0.0}}}
我在今年更新 Python 之前使用了 Pandas 的面板,但我不能再使用它了。我的尝试变得太复杂了,我需要一个更好的方法。
感谢您的帮助
SS:
这适用于您在上面提供的 data
; data
是一个有两个键('Fabrication' 和 'REACTOR')的字典。每个值都可以转换为数据框。如果您需要在最终输出中使用 'Fabrication' 和 'REACTOR',您可以修改下面的示例。
import pandas as pd
dfs = (pd.DataFrame(d) for d in data.values())
df = pd.concat(dfs, axis=1)
print(df.shape)
(11, 34)
更新
如果您需要保留 sheet 个名称,您可以这样做。很抱歉提供了两个选择,但我不确定预期的结果。
df = list()
for key, value in data.items():
t = pd.DataFrame(value)
t['sheetname'] = key
df.append(t)
df = pd.concat(df)
print(df.iloc[0:5, 0:4])
Waste_ads (tons) Uox_spent (tons) Depu (tons) U (tons)
-5.0 0.0 0.0 0.000000 0.0
-4.0 0.0 0.0 0.000000 0.0
-3.0 0.0 0.0 0.000000 0.0
-2.0 0.0 0.0 42752.301754 0.0
-1.0 0.0 0.0 8083.238467 0.0
我有这个数据集,我想将它导出为 excel 文件(如图),分两张('Fabrication' 和 'REACTOR')列标题应该是 'Waste_ads (tons)' 等等。行索引 (-5, -4, -3, - 2...5)
data = {'Fabrication': {'Waste_ads (tons)': {-5.0: 0.0, -4.0: 0.0, -3.0: 0.0, -2.0: 0.0, -1.0: 0.0, 0.0: 0.0, 1.0: 0.0, 2.0: 0.0, 3.0: 0.0, 4.0: 0.0, 5.0: 0.0}, 'Uox_spent (tons)': {-5.0: 0.0, -4.0: 0.0, -3.0: 0.0, -2.0: 0.0, -1.0: 0.0, 0.0: 0.0, 1.0: 0.0, 2.0: 0.0, 3.0: 0.0, 4.0: 0.0, 5.0: 0.0}, 'Depu (tons)': {-5.0: 0.0, -4.0: 0.0, -3.0: 0.0, -2.0: 42752.30175388285, -1.0: 8083.238467166332, 0.0: 8083.238467166332, 1.0: 8083.238467166332, 2.0: 8083.238467166332, 3.0: 8083.238467166332, 4.0: 8083.238467166332, 5.0: 8083.238467166332}, 'U (tons)': {-5.0: 0.0, -4.0: 0.0, -3.0: 0.0, -2.0: 0.0, -1.0: 0.0, 0.0: 0.0, 1.0: 0.0, 2.0: 0.0, 3.0: 0.0, 4.0: 0.0, 5.0: 0.0}, 'Uox2_spent (tons)': {-5.0: 0.0, -4.0: 0.0, -3.0: 0.0, -2.0: 0.0, -1.0: 0.0, 0.0: 0.0, 1.0: 0.0, 2.0: 0.0, 3.0: 0.0, 4.0: 0.0, 5.0: 0.0}, 'Uox2 (tons)': {-5.0: 0.0, -4.0: 0.0, -3.0: 0.0, -2.0: 0.0, -1.0: 0.0, 0.0: 0.0, 1.0: 0.0, 2.0: 0.0, 3.0: 0.0, 4.0: 0.0, 5.0: 0.0}, 'Pu (tons)': {-5.0: 0.0, -4.0: 0.0, -3.0: 0.0, -2.0: 0.0, -1.0: 0.0, 0.0: 0.0, 1.0: 0.0, 2.0: 0.0, 3.0: 0.0, 4.0: 0.0, 5.0: 0.0}, 'Waste_mox (tons)': {-5.0: 0.0, -4.0: 0.0, -3.0: 0.0, -2.0: 0.0, -1.0: 0.0, 0.0: 0.0, 1.0: 0.0, 2.0: 0.0, 3.0: 0.0, 4.0: 0.0, 5.0: 0.0}, 'Waste_uox2 (tons)': {-5.0: 0.0, -4.0: 0.0, -3.0: 0.0, -2.0: 0.0, -1.0: 0.0, 0.0: 0.0, 1.0: 0.0, 2.0: 0.0, 3.0: 0.0, 4.0: 0.0, 5.0: 0.0}, 'Waste_uox1 (tons)': {-5.0: 0.0, -4.0: 0.0, -3.0: 0.0, -2.0: 0.0, -1.0: 0.0, 0.0: 0.0, 1.0: 0.0, 2.0: 0.0, 3.0: 0.0, 4.0: 0.0, 5.0: 0.0}, 'Adsfuel_spent (tons)': {-5.0: 0.0, -4.0: 0.0, -3.0: 0.0, -2.0: 0.0, -1.0: 0.0, 0.0: 0.0, 1.0: 0.0, 2.0: 0.0, 3.0: 0.0, 4.0: 0.0, 5.0: 0.0}, 'Mox (tons)': {-5.0: 0.0, -4.0: 0.0, -3.0: 0.0, -2.0: 0.0, -1.0: 0.0, 0.0: 0.0, 1.0: 0.0, 2.0: 0.0, 3.0: 0.0, 4.0: 0.0, 5.0: 0.0}, 'Nat (tons)': {-5.0: 0.0, -4.0: 0.0, -3.0: 0.0, -2.0: 0.0, -1.0: 0.0, 0.0: 0.0, 1.0: 0.0, 2.0: 0.0, 3.0: 0.0, 4.0: 0.0, 5.0: 0.0}, 'Uox (tons)': {-5.0: 0.0, -4.0: 0.0, -3.0: 0.0, -2.0: 4649.423, -1.0: 5528.496016, 0.0: 6407.569031999999, 1.0: 2637.219048, 2.0: 2637.219048, 3.0: 2637.219048, 4.0: 2637.219048, 5.0: 2637.219048}, 'Mox_spent (tons)': {-5.0: 0.0, -4.0: 0.0, -3.0: 0.0, -2.0: 0.0, -1.0: 0.0, 0.0: 0.0, 1.0: 0.0, 2.0: 0.0, 3.0: 0.0, 4.0: 0.0, 5.0: 0.0}, 'Ma (tons)': {-5.0: 0.0, -4.0: 0.0, -3.0: 0.0, -2.0: 0.0, -1.0: 0.0, 0.0: 0.0, 1.0: 0.0, 2.0: 0.0, 3.0: 0.0, 4.0: 0.0, 5.0: 0.0}, 'Adsfuel (tons)': {-5.0: 0.0, -4.0: 0.0, -3.0: 0.0, -2.0: 0.0, -1.0: 0.0, 0.0: 0.0, 1.0: 0.0, 2.0: 0.0, 3.0: 0.0, 4.0: 0.0, 5.0: 0.0}}, 'REACTOR': {'Waste_ads (tons)': {-5.0: 0.0, -4.0: 0.0, -3.0: 0.0, -2.0: 0.0, -1.0: 0.0, 0.0: 0.0, 1.0: 0.0, 2.0: 0.0, 3.0: 0.0, 4.0: 0.0, 5.0: 0.0}, 'Uox_spent (tons)': {-5.0: 0.0, -4.0: 0.0, -3.0: 0.0, -2.0: 0.0, -1.0: 0.0, 0.0: 0.0, 1.0: 879.0730159999998, 2.0: 1758.1460319999996, 3.0: 2637.219048, 4.0: 3516.292064, 5.0: 4395.3650800000005}, 'Depu (tons)': {-5.0: 0.0, -4.0: 0.0, -3.0: 0.0, -2.0: 0.0, -1.0: 0.0, 0.0: 0.0, 1.0: 0.0, 2.0: 0.0, 3.0: 0.0, 4.0: 0.0, 5.0: 0.0}, 'U (tons)': {-5.0: 0.0, -4.0: 0.0, -3.0: 0.0, -2.0: 0.0, -1.0: 0.0, 0.0: 0.0, 1.0: 0.0, 2.0: 0.0, 3.0: 0.0, 4.0: 0.0, 5.0: 0.0}, 'Uox2_spent (tons)': {-5.0: 0.0, -4.0: 0.0, -3.0: 0.0, -2.0: 0.0, -1.0: 0.0, 0.0: 0.0, 1.0: 0.0, 2.0: 0.0, 3.0: 0.0, 4.0: 0.0, 5.0: 0.0}, 'Uox2 (tons)': {-5.0: 0.0, -4.0: 0.0, -3.0: 0.0, -2.0: 0.0, -1.0: 0.0, 0.0: 0.0, 1.0: 0.0, 2.0: 0.0, 3.0: 0.0, 4.0: 0.0, 5.0: 0.0}, 'Pu (tons)': {-5.0: 0.0, -4.0: 0.0, -3.0: 0.0, -2.0: 0.0, -1.0: 0.0, 0.0: 0.0, 1.0: 0.0, 2.0: 0.0, 3.0: 0.0, 4.0: 0.0, 5.0: 0.0}, 'Waste_mox (tons)': {-5.0: 0.0, -4.0: 0.0, -3.0: 0.0, -2.0: 0.0, -1.0: 0.0, 0.0: 0.0, 1.0: 0.0, 2.0: 0.0, 3.0: 0.0, 4.0: 0.0, 5.0: 0.0}, 'Waste_uox2 (tons)': {-5.0: 0.0, -4.0: 0.0, -3.0: 0.0, -2.0: 0.0, -1.0: 0.0, 0.0: 0.0, 1.0: 0.0, 2.0: 0.0, 3.0: 0.0, 4.0: 0.0, 5.0: 0.0}, 'Waste_uox1 (tons)': {-5.0: 0.0, -4.0: 0.0, -3.0: 0.0, -2.0: 0.0, -1.0: 0.0, 0.0: 0.0, 1.0: 0.0, 2.0: 0.0, 3.0: 0.0, 4.0: 0.0, 5.0: 0.0}, 'Adsfuel_spent (tons)': {-5.0: 0.0, -4.0: 0.0, -3.0: 0.0, -2.0: 0.0, -1.0: 0.0, 0.0: 0.0, 1.0: 0.0, 2.0: 0.0, 3.0: 0.0, 4.0: 0.0, 5.0: 0.0}, 'Mox (tons)': {-5.0: 0.0, -4.0: 0.0, -3.0: 0.0, -2.0: 0.0, -1.0: 0.0, 0.0: 0.0, 1.0: 0.0, 2.0: 0.0, 3.0: 0.0, 4.0: 0.0, 5.0: 0.0}, 'Nat (tons)': {-5.0: 0.0, -4.0: 0.0, -3.0: 0.0, -2.0: 0.0, -1.0: 0.0, 0.0: 0.0, 1.0: 0.0, 2.0: 0.0, 3.0: 0.0, 4.0: 0.0, 5.0: 0.0}, 'Uox (tons)': {-5.0: 0.0, -4.0: 0.0, -3.0: 0.0, -2.0: 0.0, -1.0: 0.0, 0.0: 0.0, 1.0: 3770.349984, 2.0: 3770.3499840000004, 3.0: 3770.3499840000004, 4.0: 3770.3499840000004, 5.0: 3770.3499840000004}, 'Mox_spent (tons)': {-5.0: 0.0, -4.0: 0.0, -3.0: 0.0, -2.0: 0.0, -1.0: 0.0, 0.0: 0.0, 1.0: 0.0, 2.0: 0.0, 3.0: 0.0, 4.0: 0.0, 5.0: 0.0}, 'Ma (tons)': {-5.0: 0.0, -4.0: 0.0, -3.0: 0.0, -2.0: 0.0, -1.0: 0.0, 0.0: 0.0, 1.0: 0.0, 2.0: 0.0, 3.0: 0.0, 4.0: 0.0, 5.0: 0.0}, 'Adsfuel (tons)': {-5.0: 0.0, -4.0: 0.0, -3.0: 0.0, -2.0: 0.0, -1.0: 0.0, 0.0: 0.0, 1.0: 0.0, 2.0: 0.0, 3.0: 0.0, 4.0: 0.0, 5.0: 0.0}}}
我在今年更新 Python 之前使用了 Pandas 的面板,但我不能再使用它了。我的尝试变得太复杂了,我需要一个更好的方法。
感谢您的帮助
SS:
这适用于您在上面提供的 data
; data
是一个有两个键('Fabrication' 和 'REACTOR')的字典。每个值都可以转换为数据框。如果您需要在最终输出中使用 'Fabrication' 和 'REACTOR',您可以修改下面的示例。
import pandas as pd
dfs = (pd.DataFrame(d) for d in data.values())
df = pd.concat(dfs, axis=1)
print(df.shape)
(11, 34)
更新
如果您需要保留 sheet 个名称,您可以这样做。很抱歉提供了两个选择,但我不确定预期的结果。
df = list()
for key, value in data.items():
t = pd.DataFrame(value)
t['sheetname'] = key
df.append(t)
df = pd.concat(df)
print(df.iloc[0:5, 0:4])
Waste_ads (tons) Uox_spent (tons) Depu (tons) U (tons)
-5.0 0.0 0.0 0.000000 0.0
-4.0 0.0 0.0 0.000000 0.0
-3.0 0.0 0.0 0.000000 0.0
-2.0 0.0 0.0 42752.301754 0.0
-1.0 0.0 0.0 8083.238467 0.0