<p>我猜你需要这个。你知道吗</p>
<p>输入:</p>
<pre><code>df
ISO3 Income_Cat_1980 Income_Cat_1985 DWWC1980 DWWC1985
0 AFG L LM 5 10
1 AGO LM H 15 25
2 ALB LM UM 30 40
3 ARE H H 40 50
</code></pre>
<p>使用以下代码</p>
<pre><code>pd.concat([df.groupby('Income_Cat_' + str(year)).sum()['DWWC' + str(year)]
for year in range(1980,1986) if 'Income_Cat_' + str(year) in
df.columns],1).fillna(0).astype(int)
</code></pre>
<p>输出</p>
<pre><code> DWWC1980 DWWC1985
H 40 75
L 5 0
LM 45 10
UM 0 40
</code></pre>
<p>说明:</p>
<p><code>pd.concat([list of series],1)</code>沿着索引连接<code>pd.Series</code>。如果一个<code>pd.Series</code>(列名为<code>series1</code>)没有另一个的索引<code>i</code>,则结果数据帧中的单元格将获得值<code>NaN</code>,因此:</p>
<pre><code>print(df.loc[i, series1])
</code></pre>
<p>结果<code>NaN</code>。因此我们使用<code>fillna(0)</code>用零填充<code>NaN</code>。转换为整数是获得所需数据帧的最后一步</p>