Как сгруппировать по двум столбцам с поменявшимися значениями в пандах? - PullRequest
0 голосов
/ 12 октября 2018

Я хочу сгруппировать по столбцам, где применяется коммутативное правило.

Например, column 1, column 2 содержит значения (a,b) в первой строке и (b,a) для другой строки, затем я хочудля группировки этих двух записей выполните группирование по операции.

Ввод:

From    To  Count
a1      b1  4
b1      a1  3
a1      b2  2
b3      a1  12
a1      b3  6

Выход:

From    To  Count(+)
a1      b1  7
a1      b2  2
b3      a1  18

Я попытался применить группу после замены элементов.Но у меня нет никакого подхода к решению этой проблемы.Помогите мне решить эту проблему.

Заранее спасибо.

1 Ответ

0 голосов
/ 12 октября 2018

Используйте numpy.sort для сортировки каждой строки:

cols = ['From','To']
df[cols] = pd.DataFrame(np.sort(df[cols], axis=1))
print (df)
  From  To  Count
0   a1  b1      4
1   a1  b1      3
2   a1  b2      2
3   a1  b3     12
4   a1  b3      6

df1 = df.groupby(cols, as_index=False)['Count'].sum()
print (df1)
  From  To  Count
0   a1  b1      7
1   a1  b2      2
2   a1  b3     18
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...