【问题标题】:replace rows with loc pandas用 loc pandas 替换行
【发布时间】:2021-08-11 03:53:56
【问题描述】:

起点:

    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

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

【问题讨论】:

  • 您能否将图像替换为实际代码值,以便更容易提供帮助?谢谢!
  • 改变了它:) _

标签: python pandas


【解决方案1】:

在你的情况下不需要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

【讨论】:

  • 我喜欢 concat 的技巧!我想就这样?顺便说一句,简单的 groupby 只是为了展示我的问题,我需要做一个更复杂的操作。
猜你喜欢
  • 2020-07-28
  • 2018-06-27
  • 1970-01-01
  • 2021-10-28
  • 2017-03-05
  • 2021-12-02
  • 2021-05-20
  • 2019-04-17
  • 1970-01-01
相关资源
最近更新 更多