问题描述
如何将两列互换分组?
例如,如果我有这张桌子
我想得到
但是,我在使用时得到了这个
df.insert(2,'Count',df.groupby(['Name1','Name2'])['Name1'].transform('size'))
具有相同名称但被交换的条目(行)被认为是新条目,但是我想以相同的方式对待它们,请您告诉我这样做的方法吗?
解决方法
DataFrame较短的示例:
df = pd.DataFrame({'name1': ['Alex','Alex','Sarah','Martin'],'name2': ['Martin','Martin','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