У меня есть большой кадр данных панд, из которого я должен извлечь несколько сетей, учитывая каждый раз подмножество данных. Эти графики будут двудольными, поэтому будут две группы узлов (два столбца в наборе данных), nodes_x и nodes_y. Я хотел бы построить графики в цикле, вместо того, чтобы делать это вручную. Как я могу присвоить рекурсивно имя каждому графику?
Часть кода для объяснения:
import pandas as pd
import networkx as nx
df=pd.read_csv('my_dataframe')
sub_list=df.nodes_y.unique()
for item in sub_list:
sub_df=df[df['nodes_y']==item]
sG_*item*=nx.Graph() #here I'd like to assign a name to the network
#recursively based on the subset of the dataframe
sG_*item*.add_nodes_from(sub_df['nodes_x'])
sG_*item*.add_nodes_from(sub_df['nodes_y'])
##rest of the code
Прежде всего, является ли это возможным и целесообразным способом работы? Есть ли лучшие решения для моей проблемы?
Попробуйте использовать словарь вместо новых переменных:
import pandas as pd
import networkx as nx
df=pd.read_csv('my_dataframe')
sub_list=df.nodes_y.unique()
sg_dict = {}
for item in sub_list:
sub_df=df[df['nodes_y']==item]
sG_dict[item]=nx.Graph() #here I'd like to assign a name to the network
#recursively based on the subset of the dataframe
sG_dict[item].add_nodes_from(sub_df['nodes_x'])
sG_dict[item].add_nodes_from(sub_df['nodes_y'])
##rest of the code