编辑:输入样本数据 df 和预期输出。编辑2:我稍微修改了数据,以便结果在每种情况下都不是与“cc”相关的统一最大数字。
我的问题是:
df 为:
df = pd.DataFrame({'Index1': ['A', 'A', 'A', 'B', 'B', 'B'],
'Index2': ['aa', 'bb', 'cc', 'aa', 'bb', 'cc'],
'X': [1, 2, 7, 3, 6, 1],
'Y': [2, 3, 6, 2, 4, 1],
'Z': [3, 5, 9, 1, 2, 1]})
Run Code Online (Sandbox Code Playgroud)
那么代码是:
df_scored = pd.DataFrame() #new df to hold results
cats = [X, Y, Z] #categories (columns of df) to be scaled
grouped = df.groupby([Index 1, Index 2]).sum()
for cat …Run Code Online (Sandbox Code Playgroud) 我无法发表评论,因为我是 stackoverflow 的新手,所以不能直接在线程中提问,但我想澄清这个问题中的解决方案:
Run Code Online (Sandbox Code Playgroud)# From Paul H import numpy as np import pandas as pd np.random.seed(0) df = pd.DataFrame({'state': ['CA', 'WA', 'CO', 'AZ'] * 3, 'office_id': list(range(1, 7)) * 2, 'sales': [np.random.randint(100000, 999999) for _ in range(12)]}) state_office = df.groupby(['state', 'office_id']).agg({'sales': 'sum'}) # Change: groupby state_office and divide by sum state_pcts = state_office.groupby(level=0).apply(lambda x: 100 * x / float(x.sum()))
我了解多索引选择(级别 0 与级别 1),但我不清楚xlambda 函数中的每个索引是指什么。将x在x.sum()会向我提及level = 0(总结中的每个分组在所有的结果level = 0),但 …
有没有办法根据边缘颜色(而不是节点颜色)在 networkx 中创建图例?
这是我的图表:
plt.figure(figsize = (15, 10))
G = nx.from_pandas_dataframe(df, 'From', 'To', ['Order', 'Colors'])
edge_labels = nx.get_edge_attributes(G, 'Order')
nx.draw_networkx(G, with_labels = False, node_color = 'black', alpha = 0.5, node_size = 3, linewidths = 1, edge_color = df['Colors'], edge_cmap =
plt.cm.Set2)
plt.show()
Run Code Online (Sandbox Code Playgroud)
其中,['Order']是边缘的描述符,['Color']是映射到 中每个值的唯一整数['Order'],它致力于基于 Set2 颜色图创建边缘颜色。
我可以使用以下内容获取边缘标签:
edge_labels = nx.get_edge_attributes(G, 'Order')
但是如何将其放入图例中?
如果有帮助,我很乐意分享数据和完整代码!