如何使用groupby-python忽略元组中值的顺序 而不是对元组有不同的行(999777)< /代码>和(777999)< /代码>,例如,我希望熊猫把它们看作是一个。我想要的输出是 df=pd.DataFrame(data={'a':[(999,777),(777,999),(777,999),(999,777),(299,331),(299,331),(543,829),(543,829),(829,543),(829,543),],'b':[44,32,42,15,65,36,92,57,77,42]}) df.groupby('a').aggregate('mean') a b (299, 331) 50.5 (543, 829) 74.5 (777, 999) 37.0 (829, 543) 59.5 (999, 777) 29.5

如何使用groupby-python忽略元组中值的顺序 而不是对元组有不同的行(999777)< /代码>和(777999)< /代码>,例如,我希望熊猫把它们看作是一个。我想要的输出是 df=pd.DataFrame(data={'a':[(999,777),(777,999),(777,999),(999,777),(299,331),(299,331),(543,829),(543,829),(829,543),(829,543),],'b':[44,32,42,15,65,36,92,57,77,42]}) df.groupby('a').aggregate('mean') a b (299, 331) 50.5 (543, 829) 74.5 (777, 999) 37.0 (829, 543) 59.5 (999, 777) 29.5,python,pandas,tuples,Python,Pandas,Tuples,使用已知的排序顺序,即对元组进行排序: a b (299, 331) 50.50 (543, 829) 67.00 (777, 999) 33.25 使用已知的排序顺序,即对元组进行排序: a b (299, 331) 50.50 (543, 829) 67.00 (777, 999) 33.25 您可以预先排序: In [6]: df.groupby(df['a'].apply(lambda x: tu

使用已知的排序顺序,即对元组进行排序:

    a          b
(299, 331)    50.50
(543, 829)    67.00
(777, 999)    33.25

使用已知的排序顺序,即对元组进行排序:

    a          b
(299, 331)    50.50
(543, 829)    67.00
(777, 999)    33.25
您可以预先排序:

In [6]: df.groupby(df['a'].apply(lambda x: tuple(sorted(x)))).aggregate('mean')
Out[6]: 
                b
a                
(299, 331)  50.50
(543, 829)  67.00
(777, 999)  33.25
您可以预先排序:

In [6]: df.groupby(df['a'].apply(lambda x: tuple(sorted(x)))).aggregate('mean')
Out[6]: 
                b
a                
(299, 331)  50.50
(543, 829)  67.00
(777, 999)  33.25

您是否愿意先对“a”进行预排序
df['a']=df['a'].apply(lambda x:tuple(sorted(x)))df.groupby('a').aggregate('mean')
您愿意先对'a'进行预排序吗
df['a']=df['a'].apply(lambda x:tuple(sorted(x)))df.groupby('a')。aggregate('mean')