Python 对dataframe中特定列的重复行求和

Python 对dataframe中特定列的重复行求和,python,pandas,dataframe,Python,Pandas,Dataframe,我想根据B列的重复行添加特定的C、D、E、F、G列,而其余的非重复行保持不变。列A的输出必须是重复行的第一个索引 我有一个数据框,如下所示: A B C D E F G box1 0487 1 1 1 box2 0487 1 1 blue 0478 1 1 1 gray 0478 1 1 1 1 gray 0478 1 1 1 flat 8704 1 1 1 cla

我想根据B列的重复行添加特定的C、D、E、F、G列,而其余的非重复行保持不变。列A的输出必须是重复行的第一个索引

我有一个数据框,如下所示:

A     B     C  D  E  F  G
box1  0487  1     1     1
box2  0487     1     1
blue  0478  1  1        1
gray  0478  1  1  1  1
gray  0478        1  1  1
flat  8704  1  1        1
clay  8704        1     1
dark  8740  1  1  1  1  1
late  4087  1     1     1
A     B     C   D  E  F  G
box1  0487  1   1  1  1  1
blue  0478  2   2  2  2  2
flat  8704  1   1  1     2
dark  8740  1   1  1  1  1
late  4087  1      1     1
我希望输出如下:

A     B     C  D  E  F  G
box1  0487  1     1     1
box2  0487     1     1
blue  0478  1  1        1
gray  0478  1  1  1  1
gray  0478        1  1  1
flat  8704  1  1        1
clay  8704        1     1
dark  8740  1  1  1  1  1
late  4087  1     1     1
A     B     C   D  E  F  G
box1  0487  1   1  1  1  1
blue  0478  2   2  2  2  2
flat  8704  1   1  1     2
dark  8740  1   1  1  1  1
late  4087  1      1     1

我很高兴听到一些建议。

使用聚合函数创建列名称字典并传递给,此外,这里有必要使用min_count=1进行求和,以避免求和值为0:


使用聚合函数创建列名称字典并传递给,此外,这里需要使用min_count=1进行求和,以避免求和值为0:


我有df.groupby'B'.agg{**{'A':lambda x:x.head1},**{I:'sum'表示df.columns中的I,如果I!='A'}。我太慢了:-@jezrael,你真是太棒了,先生,就这一次来说,你能做一个指南吗?一个初学者怎样才能开始学习呢?尽管我读了基础知识,但想知道怎样才能进入高级水平。“我会感谢你的。”拉文德辛格13-在我看来,没有简单的方法,我喜欢,尤其是与熊猫一起,他是最伟大的专家,专业知识和经验的荣誉@jezrael@Vishali-在L=['C'、'D'、'E'、'F'、'G']中定义的列的数据类型必须是数字、浮点或整数。您可以通过打印df[L].dtypesI有df.groupby'B'。agg{**{A':lambda x:x.head1},**{i:'sum'表示df.columns中的i,如果i!='A'}。我太慢了:-@jezrael,你真是太棒了,先生,就这一次来说,你能做一个指南吗?一个初学者怎样才能开始学习呢?尽管我读了基础知识,但想知道怎样才能进入高级水平。“我会感谢你的。”拉文德辛格13-在我看来,没有简单的方法,我喜欢,尤其是与熊猫一起,他是最伟大的专家,专业知识和经验的荣誉@jezrael@Vishali-在L=['C'、'D'、'E'、'F'、'G']中定义的列的数据类型必须是数字、浮点或整数。您可以通过打印df[L].d类型进行检查