<｜begin▁of▁sentence｜>### Instruction:
Imagine you're analyzing the educational network of a school district, where each school is represented by a node in a directed graph, and edges represent the strength of the relationships between different schools' programs based on student transfers. This graph is captured in a GML file named "school_network.gml." In the process of your analysis, you've identified that there is a cycle within this network, signifying a strong interconnection among a group of schools.

As an educational psychologist, you're interested in simplifying this complex network into a more manageable form to better understand the overarching relationships between these strongly interconnected schools. To do so, you're considering creating a condensed version of this network. This would mean aggregating the interconnected schools that form strong components - those within the cycle - into singular representative nodes, while maintaining the original network's directional relationships.

Moreover, to ensure the practical application of findings from this condensed graph, you require an approach to trace each individual school (node) from the original graph in "school_network.gml" to its corresponding representative node in the condensed graph. This would permit an assessment of how individual schools are grouped together in the larger structure of the school district's network.

Could you reframe your research question to reflect this practical educational scenario while maintaining the essence of your analytical query?
### Response:
import networkx as nx

# Create a directed graph with a cycle
G = nx.DiGraph([(0, 1), (1, 2), (2, 0), (2, 3), (3, 4)])

# Find the strongly connected components (SCCs)
scc = list(nx.strongly_connected_components(G))

# Get the condensation of G
C = nx.condensation(G, scc=scc)

# Print the nodes with their data
print(C.nodes.data())

# Access the mapping from the original graph to the condensation graph
mapping = C.graph['mapping']
print(mapping)
<|EOT|>
