python - 用 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
我怎样才能做到这一点?谢谢!
解决方案
在你的情况下不需要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
推荐阅读
- gis - 如何在 QGIS Server 中显示图层组
- java - 如何使用 JAVA 在 XML 中设置属性值
- python - 如何将函数输出添加到文本文件中?
- c - 为什么我的程序不能正确地将十进制转换为二进制打印?
- jquery - 出现错误:“无法读取未定义的属性 'toLowerCase'”在 filter() 函数中使用 Jquery find()
- sql - 需要在 ssis 中使用从其他查询返回 5 个随机行结果的查询
- python - 如何根据可变数量显示和保存django表单的多个实例?
- scala - 为什么scala枚举不从其他枚举中选择值作为其值?
- xml - 如何使用 ORACLE 解析 XML 中的属性值
- azure-application-insights - APIM 在 Azure Application Insights 中屏蔽 PII 数据