【发布时间】:2021-03-02 07:40:09
【问题描述】:
我在下面有一个示例数据框:
sn C1-1 C1-2 C1-3 H2-1 H2-2 K3-1 K3-2
1 4 3 5 4 1 4 2
2 2 2 0 2 0 1 2
3 1 2 0 0 2 1 2
我想根据 C1、H2、K3 的前缀求和,并输出三个新列的总和。最后的结果是这样的:
sn total_c1 total_h2 total_k3
1 12 5 6
2 4 2 3
3 3 2 3
我对原始 df 的尝试:
lst = ["C1", "H2", "K3"]
lst2 = ["total_c1", "total_h2", "total_k3"]
for k in lst:
idx = df.columns.str.startswith(i)
for j in lst2:
df[j] = df.iloc[:,idx].sum(axis=1)
df1 = df.append(df, sort=False)
但我一直收到错误
IndexError: Item wrong length 35 instead of 36.
我不知道如何附加新的总计列以在循环中生成我的最终结果。
任何帮助将不胜感激(或更好的建议,而不是循环)。谢谢。
【问题讨论】:
标签: pandas dataframe for-loop append