回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<pre><code>df_devices = df.groupby(['from_time', 'device', 'type'])['power'].mean()
</code></pre>
<p>在计算列上的<code>groupby</code>的<code>mean()</code>之后,我有一个pandas系列包含以下内容</p>
^{pr2}$
<p>我想把它转换成以下格式的词典:</p>
<pre><code>{'00:00:00' : {'AC': {'indoor': 1362.2142857142858, 'outdoor': 3470.705882352941},
'Computer': {'indoor': 399.0, 'outdoor': 412.4}, 'Heater': {'indoor':
2258.375, 'outdoor': 2274.6666666666665}, 'Lights': {'indoor': 1535.0,
'outdoor': 3475.4736842105262}, 'Microwave': {'indoor': 1420.0, 'outdoor':
1489.9333333333334}, 'Refridgerator': {'indoor': 192.38888888888889,
'outdoor': 195.07692307692307}, 'Television': {'indoor': 243.66666666666666,
'outdoor': 261.5}},
'00:00:01' : {'AC': {'indoor': 1493.0714285714287, 'outdoor': 3724.3529411764707},
'Computer': {'indoor': 416.46153846153845, 'outdoor': 413.55555555555554},
'Heater': {'indoor': 2143.277777777778, 'outdoor': 2286.4615384615386},
'Lights': {'indoor': 1447.95, 'outdoor': 3092.4545454545455}, 'Microwave':
{'indoor': 1536.857142857143, 'outdoor': 1429.2941176470588},
'Refridgerator': {'indoor': 207.41666666666666, 'outdoor':
234.68421052631578}, 'Television': {'indoor': 251.0, 'outdoor':
249.9047619047619}}}
</code></pre>
<p>我确实尝试过在框架上使用<code>.agg()</code>和<code>.unstack()</code>,但最终得到了不同的格式
{<cd5>}也没有给出有希望的结果。它返回不同的格式</p>
<p>我能做的最好的事情就是使用下面的代码</p>
<pre><code>df_devices.unstack(level=2).unstack().to_dict('index')
</code></pre>
<p>不提供预期的输出</p>
<pre><code>{'00:00:00': {('indoor', 'AC'): 1362.2142857142858,
('indoor', 'Computer'): 399.0,
('indoor', 'Heater'): 2258.375,
('indoor', 'Lights'): 1535.0,
('indoor', 'Microwave'): 1420.0,
('indoor', 'Refridgerator'): 192.38888888888889,
('indoor', 'Television'): 243.66666666666666,
('outdoor', 'AC'): 3470.705882352941,
('outdoor', 'Computer'): 412.4,
('outdoor', 'Heater'): 2274.6666666666665,
('outdoor', 'Lights'): 3475.4736842105262,
('outdoor', 'Microwave'): 1489.9333333333334,
('outdoor', 'Refridgerator'): 195.07692307692307,
('outdoor', 'Television'): 261.5}
</code></pre>