Комбинация одной колонны со всеми другими колоннами с использованием панд - PullRequest
0 голосов
/ 20 октября 2018

Я буду очень признателен за любую помощь здесь.Мой фрейм данных в этом формате

x1 x2 x3;

1 101 201;

2 102 202

Я хочу получить это в этомформат

x1 x2 x3;

1 101 201;

1 102 202;

2 101 201;

2 102 202

Я могу использовать декартово произведение, которое дает все комбинации.Спасибо за вашу помощь.

list(itertools.product(tx['x1'],tx['x2'],tx['x3']))

Я учу панд, просто застрял.

Фрейм данных

1 Ответ

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

Декартовой продукт даст вам ниже, а не то, что вы вставили:

1   101   201 
1   101   201 
2   102   202 
2   102   202 

Вы можете добиться этого, добавив фиктивный столбец к вашей df как:

d1['key'] = 1
In [710]: d1
Out[710]: 
   x1   x2   x3  key
0   1  101  201    1
1   2  102  202    1

Затем присоединитесьd1 с самим собой на key для декартового произведения:

In [819]: pd.merge(d1,d1,on='key')[['x1_x','x2_x','x3_x']]
Out[819]: 
   x1_x  x2_x  x3_x
0     1   101   201
1     1   101   201
2     2   102   202
3     2   102   202

Дайте мне знать, если это то, что вы хотите?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...