擅长:python、mysql、java
<p>以下是一种完全矢量化的方法:融合数据帧,仅对相关列求和,并将总数返回到数据帧中:</p>
<pre><code>d = dict([[y, x] for x, y in enumerate(df.columns[:-1])])
temp_df = df.copy()
temp_df = temp_df.rename(columns=d)
temp_df = temp_df.reset_index().melt(id_vars = ["index", "iloc_value"])
temp_df = temp_df[temp_df.variable <= temp_df.iloc_value]
df["total"] = temp_df.groupby("index").value.sum()
</code></pre>
<p>输出为:</p>
<pre><code> A B C D iloc_value total
0 1 2 3 2 1 3
1 1 3 4 2 2 8
2 4 6 3 2 1 10
</code></pre>