按Pandas中的先前列值添加列

时间:2016-07-14 10:11:47

标签: python pandas dataframe sum multiplication

这是表格:

6   30  98  298 588 1598
36  2.0 NaN NaN NaN NaN NaN
50  1.0 NaN NaN NaN NaN NaN

这是我添加新的'总计'专栏:

df_cz['total'] = df_cz[6] *6 + df_cz[30] *30 + df_cz[98] *98 + ...

有没有更好的方法来计算'总计'值基于表头值和每个行值。

1 个答案:

答案 0 :(得分:1)

您可以mul使用to_series转换为sum的列名:

print (df_cz)
    6   30  98  298  588  1598
0  36  2.0 NaN  NaN  NaN   NaN
1  50  1.0 NaN  NaN  NaN   NaN

df_cz['total'] = df_cz.mul(df_cz.columns.to_series()).sum(axis=1)
print (df_cz)
    6   30  98  298  588  1598  total
0  36  2.0 NaN  NaN  NaN   NaN  276.0
1  50  1.0 NaN  NaN  NaN   NaN  330.0