Pandas 熊猫堆栈在两列的组合上找到唯一

Pandas 熊猫堆栈在两列的组合上找到唯一,pandas,pandas-groupby,Pandas,Pandas Groupby,我试图在Field1、Field2中找到唯一的值,以及Value1、Value2中相应值的总和 请在下面找到输入和输出示例。我尝试使用堆栈,但无法获得类似的输出 输入 输出 如果列与其他列一起包含特定值,我将尝试删除行 例如,在上面的输出中,如果带A、B的行与其他行一起出现,我将删除它们,如果它们单独出现,我将打印它们。请参阅下面的新输出 输出2 与groupby和aggregate sum一起使用: lreshape的替代方案,但仍不是官方的: 看起来您正在尝试将这些值相加作为过程的一部分;添

我试图在Field1、Field2中找到唯一的值,以及Value1、Value2中相应值的总和

请在下面找到输入和输出示例。我尝试使用堆栈,但无法获得类似的输出

输入 输出 如果列与其他列一起包含特定值,我将尝试删除行

例如,在上面的输出中,如果带A、B的行与其他行一起出现,我将删除它们,如果它们单独出现,我将打印它们。请参阅下面的新输出

输出2 与groupby和aggregate sum一起使用:

lreshape的替代方案,但仍不是官方的:


看起来您正在尝试将这些值相加作为过程的一部分;添加一个关于你想要达到的目标的解释会使回答问题变得更简单。谢谢!新增一期。你能检查一下吗?Thnks in advanceI要删除带有“A”和“B”的行,只有在id=2,3的情况下,对于给定id,这些行与其他值一起出现。如果它们不与其他值一起出现,我将保留它们,如在id=1的情况下Thanks@Nani-你能提出新问题吗?这似乎更复杂。
id  Field1  Value1  Field2  Value2
1     A       1       B       0
1     A       0     
2     A       1       D       1
3     C       1       A       0
4     E       0     
3     A       1       C       1
4     F       1
id  Field   Value
1     A       1
1     B       0     
2     A       1
2     D       1
3     C       2
3     A       1
4     E       0
4     F       1
id  Field   Value
1     A       1
1     B       0     
2     D       1
3     C       2
4     E       0
4     F       1
df = (pd.wide_to_long(df.reset_index(), stubnames=['Field', 'Value'], i='index', j='id')
       .reset_index(drop=True)
       .groupby(by=['id', 'Field'], as_index=False)['Value'].sum())
df = (pd.lreshape(df, {'Value':['Value1','Value2'], 'Field':['Field1','Field2']})
        .groupby(['id', 'Field'], as_index=False)['Value'].sum())

print (df)
   id Field  Value
0   1     A    1.0
1   1     B    0.0
2   2     A    1.0
3   2     D    1.0
4   3     A    1.0
5   3     C    2.0
6   4     E    0.0
7   4     F    1.0