Python 我如何可以互换地按两列分组?

Python 我如何可以互换地按两列分组?,python,dataframe,group-by,multiple-columns,counting,Python,Dataframe,Group By,Multiple Columns,Counting,我如何可以互换地按两列分组 例如,如果我有这张桌子 我想得到 然而,当我使用 df.insert(2, 'Count', df.groupby(['Name1','Name2'])['Name1'].transform('size')) 具有相同名称但已交换的条目(行)被视为新条目,但我希望以相同的方式处理它们,您能告诉我一种方法吗?具有较短数据帧的示例: df = pd.DataFrame({'name1': ['Alex', 'Alex', 'Sarah', 'Martin'], '

我如何可以互换地按两列分组

例如,如果我有这张桌子

我想得到

然而,当我使用

df.insert(2, 'Count', df.groupby(['Name1','Name2'])['Name1'].transform('size'))


具有相同名称但已交换的条目(行)被视为新条目,但我希望以相同的方式处理它们,您能告诉我一种方法吗?

具有较短数据帧的示例:

df = pd.DataFrame({'name1': ['Alex', 'Alex', 'Sarah', 'Martin'], 'name2': ['Martin', 'Martin', 'Alex', 'Alex']})

df['tmp'] = df.apply(frozenset, axis=1)
df['count'] = df.groupby('tmp')['name1'].transform('size')
df = df.set_index('tmp')
df = df[~df.index.duplicated()].reset_index(drop=True)
print(df)
印刷品:

   name1   name2  count
0   Alex  Martin      3
1  Sarah    Alex      1