Outer join within a Pandas tablePerformant cartesian product (CROSS JOIN) with pandasPython join: why is it string.join(list) instead of list.join(string)?Selecting multiple columns in a pandas dataframeRenaming columns in pandasAdding new column to existing DataFrame in Python pandasDelete column from pandas DataFrame by column name“Large data” work flows using pandasHow to iterate over rows in a DataFrame in Pandas?Select rows from a DataFrame based on values in a column in pandasGet list from pandas DataFrame column headerspandas three-way joining multiple dataframes on columns
Arrow those variables!
How to show a landlord what we have in savings?
Intersection Puzzle
Do UK voters know if their MP will be the Speaker of the House?
I would say: "You are another teacher", but she is a woman and I am a man
Assassin's bullet with mercury
One verb to replace 'be a member of' a club
Is there an expression that means doing something right before you will need it rather than doing it in case you might need it?
How to prevent "they're falling in love" trope
Why is it a bad idea to hire a hitman to eliminate most corrupt politicians?
Can compressed videos be decoded back to their uncompresed original format?
How badly should I try to prevent a user from XSSing themselves?
Why do bosons tend to occupy the same state?
Is it inappropriate for a student to attend their mentor's dissertation defense?
How does a predictive coding aid in lossless compression?
Unlock My Phone! February 2018
Can I run a new neutral wire to repair a broken circuit?
Can we compute the area of a quadrilateral with one right angle when we only know the lengths of any three sides?
Size of subfigure fitting its content (tikzpicture)
How would I stat a creature to be immune to everything but the Magic Missile spell? (just for fun)
Bullying boss launched a smear campaign and made me unemployable
Forgetting the musical notes while performing in concert
Avoiding the "not like other girls" trope?
Can my sorcerer use a spellbook only to collect spells and scribe scrolls, not cast?
Outer join within a Pandas table
Performant cartesian product (CROSS JOIN) with pandasPython join: why is it string.join(list) instead of list.join(string)?Selecting multiple columns in a pandas dataframeRenaming columns in pandasAdding new column to existing DataFrame in Python pandasDelete column from pandas DataFrame by column name“Large data” work flows using pandasHow to iterate over rows in a DataFrame in Pandas?Select rows from a DataFrame based on values in a column in pandasGet list from pandas DataFrame column headerspandas three-way joining multiple dataframes on columns
I have a PANDAS dataframe with three string columns that looks something like this:
Name Surname MiddleName
James Bond A
Maggie Sweenie B
I want to create a kind of outer join within the table so that every possible combination of Name, Surname and MiddleName is output. The output that I am looking for is:
Name Surname MiddleName
James Bond A
Maggie Sweenie B
James Sweenie A
James Sweenie B
Maggie Bond A
Maggie Bond B
Any ideas what's the most efficient way to do this ?
python pandas
add a comment |
I have a PANDAS dataframe with three string columns that looks something like this:
Name Surname MiddleName
James Bond A
Maggie Sweenie B
I want to create a kind of outer join within the table so that every possible combination of Name, Surname and MiddleName is output. The output that I am looking for is:
Name Surname MiddleName
James Bond A
Maggie Sweenie B
James Sweenie A
James Sweenie B
Maggie Bond A
Maggie Bond B
Any ideas what's the most efficient way to do this ?
python pandas
Sorry it is different , I reopen it .
– Wen-Ben
Mar 8 at 20:45
add a comment |
I have a PANDAS dataframe with three string columns that looks something like this:
Name Surname MiddleName
James Bond A
Maggie Sweenie B
I want to create a kind of outer join within the table so that every possible combination of Name, Surname and MiddleName is output. The output that I am looking for is:
Name Surname MiddleName
James Bond A
Maggie Sweenie B
James Sweenie A
James Sweenie B
Maggie Bond A
Maggie Bond B
Any ideas what's the most efficient way to do this ?
python pandas
I have a PANDAS dataframe with three string columns that looks something like this:
Name Surname MiddleName
James Bond A
Maggie Sweenie B
I want to create a kind of outer join within the table so that every possible combination of Name, Surname and MiddleName is output. The output that I am looking for is:
Name Surname MiddleName
James Bond A
Maggie Sweenie B
James Sweenie A
James Sweenie B
Maggie Bond A
Maggie Bond B
Any ideas what's the most efficient way to do this ?
python pandas
python pandas
asked Mar 8 at 20:42
Number LogicNumber Logic
17010
17010
Sorry it is different , I reopen it .
– Wen-Ben
Mar 8 at 20:45
add a comment |
Sorry it is different , I reopen it .
– Wen-Ben
Mar 8 at 20:45
Sorry it is different , I reopen it .
– Wen-Ben
Mar 8 at 20:45
Sorry it is different , I reopen it .
– Wen-Ben
Mar 8 at 20:45
add a comment |
3 Answers
3
active
oldest
votes
IIUC using product
import itertools
yourdf=pd.DataFrame(list(itertools.product(*df.values.T.tolist())),columns=df.columns)
yourdf
Out[937]:
Name Surname MiddleName
0 James Bond A
1 James Bond B
2 James Sweenie A
3 James Sweenie B
4 Maggie Bond A
5 Maggie Bond B
6 Maggie Sweenie A
7 Maggie Sweenie B
add a comment |
You are looking for a kind of expand_grid
functionality, which can be implemented with itertools.product()
. From the pandas documentation , you can define expand_grid
:
import itertools
def expand_grid(data_dict):
rows = itertools.product(*data_dict.values())
return pd.DataFrame.from_records(rows, columns=data_dict.keys())
expand_grid(df.to_dict('list'))
Out[38]:
Name Surname MidName
0 James Bond A
1 James Bond B
2 James Sweenie A
3 James Sweenie B
4 Maggie Bond A
5 Maggie Bond B
6 Maggie Sweenie A
7 Maggie Sweenie B
add a comment |
Without itertools:
pd.MultiIndex.from_product(df.T.values.tolist()).to_frame(index=False)
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55070717%2fouter-join-within-a-pandas-table%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
3 Answers
3
active
oldest
votes
3 Answers
3
active
oldest
votes
active
oldest
votes
active
oldest
votes
IIUC using product
import itertools
yourdf=pd.DataFrame(list(itertools.product(*df.values.T.tolist())),columns=df.columns)
yourdf
Out[937]:
Name Surname MiddleName
0 James Bond A
1 James Bond B
2 James Sweenie A
3 James Sweenie B
4 Maggie Bond A
5 Maggie Bond B
6 Maggie Sweenie A
7 Maggie Sweenie B
add a comment |
IIUC using product
import itertools
yourdf=pd.DataFrame(list(itertools.product(*df.values.T.tolist())),columns=df.columns)
yourdf
Out[937]:
Name Surname MiddleName
0 James Bond A
1 James Bond B
2 James Sweenie A
3 James Sweenie B
4 Maggie Bond A
5 Maggie Bond B
6 Maggie Sweenie A
7 Maggie Sweenie B
add a comment |
IIUC using product
import itertools
yourdf=pd.DataFrame(list(itertools.product(*df.values.T.tolist())),columns=df.columns)
yourdf
Out[937]:
Name Surname MiddleName
0 James Bond A
1 James Bond B
2 James Sweenie A
3 James Sweenie B
4 Maggie Bond A
5 Maggie Bond B
6 Maggie Sweenie A
7 Maggie Sweenie B
IIUC using product
import itertools
yourdf=pd.DataFrame(list(itertools.product(*df.values.T.tolist())),columns=df.columns)
yourdf
Out[937]:
Name Surname MiddleName
0 James Bond A
1 James Bond B
2 James Sweenie A
3 James Sweenie B
4 Maggie Bond A
5 Maggie Bond B
6 Maggie Sweenie A
7 Maggie Sweenie B
answered Mar 8 at 20:48
Wen-BenWen-Ben
123k83671
123k83671
add a comment |
add a comment |
You are looking for a kind of expand_grid
functionality, which can be implemented with itertools.product()
. From the pandas documentation , you can define expand_grid
:
import itertools
def expand_grid(data_dict):
rows = itertools.product(*data_dict.values())
return pd.DataFrame.from_records(rows, columns=data_dict.keys())
expand_grid(df.to_dict('list'))
Out[38]:
Name Surname MidName
0 James Bond A
1 James Bond B
2 James Sweenie A
3 James Sweenie B
4 Maggie Bond A
5 Maggie Bond B
6 Maggie Sweenie A
7 Maggie Sweenie B
add a comment |
You are looking for a kind of expand_grid
functionality, which can be implemented with itertools.product()
. From the pandas documentation , you can define expand_grid
:
import itertools
def expand_grid(data_dict):
rows = itertools.product(*data_dict.values())
return pd.DataFrame.from_records(rows, columns=data_dict.keys())
expand_grid(df.to_dict('list'))
Out[38]:
Name Surname MidName
0 James Bond A
1 James Bond B
2 James Sweenie A
3 James Sweenie B
4 Maggie Bond A
5 Maggie Bond B
6 Maggie Sweenie A
7 Maggie Sweenie B
add a comment |
You are looking for a kind of expand_grid
functionality, which can be implemented with itertools.product()
. From the pandas documentation , you can define expand_grid
:
import itertools
def expand_grid(data_dict):
rows = itertools.product(*data_dict.values())
return pd.DataFrame.from_records(rows, columns=data_dict.keys())
expand_grid(df.to_dict('list'))
Out[38]:
Name Surname MidName
0 James Bond A
1 James Bond B
2 James Sweenie A
3 James Sweenie B
4 Maggie Bond A
5 Maggie Bond B
6 Maggie Sweenie A
7 Maggie Sweenie B
You are looking for a kind of expand_grid
functionality, which can be implemented with itertools.product()
. From the pandas documentation , you can define expand_grid
:
import itertools
def expand_grid(data_dict):
rows = itertools.product(*data_dict.values())
return pd.DataFrame.from_records(rows, columns=data_dict.keys())
expand_grid(df.to_dict('list'))
Out[38]:
Name Surname MidName
0 James Bond A
1 James Bond B
2 James Sweenie A
3 James Sweenie B
4 Maggie Bond A
5 Maggie Bond B
6 Maggie Sweenie A
7 Maggie Sweenie B
answered Mar 8 at 20:55
Xinbin H.Xinbin H.
305
305
add a comment |
add a comment |
Without itertools:
pd.MultiIndex.from_product(df.T.values.tolist()).to_frame(index=False)
add a comment |
Without itertools:
pd.MultiIndex.from_product(df.T.values.tolist()).to_frame(index=False)
add a comment |
Without itertools:
pd.MultiIndex.from_product(df.T.values.tolist()).to_frame(index=False)
Without itertools:
pd.MultiIndex.from_product(df.T.values.tolist()).to_frame(index=False)
answered Mar 8 at 22:28
JoergVanAkenJoergVanAken
88667
88667
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55070717%2fouter-join-within-a-pandas-table%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Sorry it is different , I reopen it .
– Wen-Ben
Mar 8 at 20:45