Build networkx directed graph or flow chart from more than one column of pandas dataframe
I have pandas dataframe which consist of 10 columns.
- each row consist a step performed by a user to online. there are total of 10 columns so all 10 step process
- lets say first activity is booking a flight ticket so steps are
login website-->give src dest time-->select seats-->pay--review

so there are various permutations can happen at every step, I want to draw a directed graph out of all dataset.
currently networkx supports only 2 columns in
# libraries
import pandas as pd
import numpy as np
import networkx as nx
import matplotlib.pyplot as plt
# Build your graph
G=nx.from_pandas_dataframe(df, 'src', 'dest',create_using=nx.DiGraph())
# Plot it
nx.draw(G, with_labels=True)
plt.show()
can someone tell me how to d it for more than two column directed graph
python pandas dataframe networkx directed-graph
add a comment |
I have pandas dataframe which consist of 10 columns.
- each row consist a step performed by a user to online. there are total of 10 columns so all 10 step process
- lets say first activity is booking a flight ticket so steps are
login website-->give src dest time-->select seats-->pay--review

so there are various permutations can happen at every step, I want to draw a directed graph out of all dataset.
currently networkx supports only 2 columns in
# libraries
import pandas as pd
import numpy as np
import networkx as nx
import matplotlib.pyplot as plt
# Build your graph
G=nx.from_pandas_dataframe(df, 'src', 'dest',create_using=nx.DiGraph())
# Plot it
nx.draw(G, with_labels=True)
plt.show()
can someone tell me how to d it for more than two column directed graph
python pandas dataframe networkx directed-graph
add a comment |
I have pandas dataframe which consist of 10 columns.
- each row consist a step performed by a user to online. there are total of 10 columns so all 10 step process
- lets say first activity is booking a flight ticket so steps are
login website-->give src dest time-->select seats-->pay--review

so there are various permutations can happen at every step, I want to draw a directed graph out of all dataset.
currently networkx supports only 2 columns in
# libraries
import pandas as pd
import numpy as np
import networkx as nx
import matplotlib.pyplot as plt
# Build your graph
G=nx.from_pandas_dataframe(df, 'src', 'dest',create_using=nx.DiGraph())
# Plot it
nx.draw(G, with_labels=True)
plt.show()
can someone tell me how to d it for more than two column directed graph
python pandas dataframe networkx directed-graph
I have pandas dataframe which consist of 10 columns.
- each row consist a step performed by a user to online. there are total of 10 columns so all 10 step process
- lets say first activity is booking a flight ticket so steps are
login website-->give src dest time-->select seats-->pay--review

so there are various permutations can happen at every step, I want to draw a directed graph out of all dataset.
currently networkx supports only 2 columns in
# libraries
import pandas as pd
import numpy as np
import networkx as nx
import matplotlib.pyplot as plt
# Build your graph
G=nx.from_pandas_dataframe(df, 'src', 'dest',create_using=nx.DiGraph())
# Plot it
nx.draw(G, with_labels=True)
plt.show()
can someone tell me how to d it for more than two column directed graph
python pandas dataframe networkx directed-graph
python pandas dataframe networkx directed-graph
asked Nov 20 '18 at 9:08
Puneet Sinha
8316
8316
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
networkx from_pandas_dataframe uses add_edges_from, you can do a similar thing:
# libraries
import pandas as pd
import numpy as np
import networkx as nx
import matplotlib.pyplot as plt
# Build your graph
df = pd.DataFrame(np.random.randn(2,4),columns=list('ABCD')) #Create a 4 column data frame
columns = list(df.columns.values)# Get columns name
g = nx.empty_graph(0, nx.DiGraph()) #initialize an empty graph
for i in range(len(columns)-1):
g.add_edges_from(zip(df[columns[i]], df[columns[i+1]])) #Create edge between 2 values, between all consecutive coumns
# Plot it
nx.draw(g, with_labels=True)
plt.show()
With a result: 
super thanks main :)
– Puneet Sinha
Nov 22 '18 at 6:46
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%2f53389570%2fbuild-networkx-directed-graph-or-flow-chart-from-more-than-one-column-of-pandas%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
networkx from_pandas_dataframe uses add_edges_from, you can do a similar thing:
# libraries
import pandas as pd
import numpy as np
import networkx as nx
import matplotlib.pyplot as plt
# Build your graph
df = pd.DataFrame(np.random.randn(2,4),columns=list('ABCD')) #Create a 4 column data frame
columns = list(df.columns.values)# Get columns name
g = nx.empty_graph(0, nx.DiGraph()) #initialize an empty graph
for i in range(len(columns)-1):
g.add_edges_from(zip(df[columns[i]], df[columns[i+1]])) #Create edge between 2 values, between all consecutive coumns
# Plot it
nx.draw(g, with_labels=True)
plt.show()
With a result: 
super thanks main :)
– Puneet Sinha
Nov 22 '18 at 6:46
add a comment |
networkx from_pandas_dataframe uses add_edges_from, you can do a similar thing:
# libraries
import pandas as pd
import numpy as np
import networkx as nx
import matplotlib.pyplot as plt
# Build your graph
df = pd.DataFrame(np.random.randn(2,4),columns=list('ABCD')) #Create a 4 column data frame
columns = list(df.columns.values)# Get columns name
g = nx.empty_graph(0, nx.DiGraph()) #initialize an empty graph
for i in range(len(columns)-1):
g.add_edges_from(zip(df[columns[i]], df[columns[i+1]])) #Create edge between 2 values, between all consecutive coumns
# Plot it
nx.draw(g, with_labels=True)
plt.show()
With a result: 
super thanks main :)
– Puneet Sinha
Nov 22 '18 at 6:46
add a comment |
networkx from_pandas_dataframe uses add_edges_from, you can do a similar thing:
# libraries
import pandas as pd
import numpy as np
import networkx as nx
import matplotlib.pyplot as plt
# Build your graph
df = pd.DataFrame(np.random.randn(2,4),columns=list('ABCD')) #Create a 4 column data frame
columns = list(df.columns.values)# Get columns name
g = nx.empty_graph(0, nx.DiGraph()) #initialize an empty graph
for i in range(len(columns)-1):
g.add_edges_from(zip(df[columns[i]], df[columns[i+1]])) #Create edge between 2 values, between all consecutive coumns
# Plot it
nx.draw(g, with_labels=True)
plt.show()
With a result: 
networkx from_pandas_dataframe uses add_edges_from, you can do a similar thing:
# libraries
import pandas as pd
import numpy as np
import networkx as nx
import matplotlib.pyplot as plt
# Build your graph
df = pd.DataFrame(np.random.randn(2,4),columns=list('ABCD')) #Create a 4 column data frame
columns = list(df.columns.values)# Get columns name
g = nx.empty_graph(0, nx.DiGraph()) #initialize an empty graph
for i in range(len(columns)-1):
g.add_edges_from(zip(df[columns[i]], df[columns[i+1]])) #Create edge between 2 values, between all consecutive coumns
# Plot it
nx.draw(g, with_labels=True)
plt.show()
With a result: 
edited Nov 20 '18 at 9:51
answered Nov 20 '18 at 9:36
Dinari
1,625422
1,625422
super thanks main :)
– Puneet Sinha
Nov 22 '18 at 6:46
add a comment |
super thanks main :)
– Puneet Sinha
Nov 22 '18 at 6:46
super thanks main :)
– Puneet Sinha
Nov 22 '18 at 6:46
super thanks main :)
– Puneet Sinha
Nov 22 '18 at 6:46
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.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- 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%2f53389570%2fbuild-networkx-directed-graph-or-flow-chart-from-more-than-one-column-of-pandas%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