<p>预期结果与您显示为“Output Dataframe”的结果完全相同:原始Dataframe的“Container”列中的第一个“NaN”值必须替换为相应的立即上限值。我添加了更多“NaN”值来举例说明:</p>
<p>原始数据帧:</p>
<pre><code>df
Container SB No Pkgs CBM Weight
257 CXRU1219452 195375 1650 65 23000
259 BEAU4883430 140801 26 3 575
260 NaN 140868 60 8 1153
261 NaN 140824 11 1 197
262 NaN 140851 253 32 4793
263 NaN 140645 14 1 278
264 NaN 140723 5 0 71
265 NaN 140741 1 0 22
266 NaN 140768 5 0 93
268 SZLU9366565 189355 1800 65 23000
259 ZBCD1234567 100000 100 10 1000
260 NaN 100000 100 10 1000
261 NaN 100000 100 10 1000
262 NaN 100000 100 10 1000
</code></pre>
<p>按照[<a href="https://stackoverflow.com/a/27905350/6057650][1]">https://stackoverflow.com/a/27905350/6057650][1]</a>的建议,将“fillna”函数与方法“ffill”一起使用</p>
<p>然后您将得到不带“NaN”值的“Container”列:</p>
<pre><code>df=df.fillna(method='ffill')
df
Container SB No Pkgs CBM Weight
257 CXRU1219452 195375 1650 65 23000
259 BEAU4883430 140801 26 3 575
260 BEAU4883430 140868 60 8 1153
261 BEAU4883430 140824 11 1 197
262 BEAU4883430 140851 253 32 4793
263 BEAU4883430 140645 14 1 278
264 BEAU4883430 140723 5 0 71
265 BEAU4883430 140741 1 0 22
266 BEAU4883430 140768 5 0 93
268 SZLU9366565 189355 1800 65 23000
259 ZBCD1234567 100000 100 10 1000
260 ZBCD1234567 100000 100 10 1000
261 ZBCD1234567 100000 100 10 1000
262 ZBCD1234567 100000 100 10 1000
</code></pre>
<p>现在可以使用groupby获得预期的“Output DataFrame”:</p>
<pre><code>df.groupby(['Container']).sum()
SB No Pkgs CBM Weight
Container
BEAU4883430 1126221 375 45 7182
CXRU1219452 195375 1650 65 23000
SZLU9366565 189355 1800 65 23000
ZBCD1234567 400000 400 40 4000
</code></pre>