Подграфы, соответствующие связным компонентам двудольных графов (и даже любого графа), сами переносят все атрибуты узла, так что, в частности, вы можете использовать их для маркировки ваших разделов, как в документах :
In [28]: B = nx.Graph()
...: B.add_nodes_from([1, 2, 3, 4], bipartite=0)
...: B.add_nodes_from(['a', 'b', 'c'], bipartite=1)
...: B.add_edges_from([(1, 'a'), (1, 'b'), (2, 'b'), (2, 'a'), (3, 'c'), (4, 'c')])
...:
...: G = B.subgraph(next(nx.connected_components(B)))
In [30]: G.nodes
Out[30]: NodeView((1, 2, 'a', 'b'))
In [31]: G.nodes[1]
Out[31]: {'bipartite': 0}