首页 > 解决方案 > 用 loc pandas 替换行

问题描述

初始点:

    a
0   1
1   2
2   2
3   3
4   3
5   3
6   11
7   1
8   1
df.loc[df['a'] == 1,:] = df.loc[df['a'] == 1,:].groupby('a').sum()

ValueError:无法使用长度与值不同的多索引选择索引器进行设置

我的目标:

a
0   2
1   2
2   3
3   3
4   3
5   11
6   3

我怎样才能做到这一点?谢谢!

标签: pythonpandas

解决方案


在你的情况下不需要groupby

pd.concat([df.loc[df['a']!=1], df.loc[df['a'] == 1,:].sum().to_frame().T])
Out[356]: 
    a
1   2
2   2
3   3
4   3
5   3
6  11
0   3

推荐阅读