小编jba*_*rdo的帖子

pandas groupby 内排序(多索引)

编辑:输入样本数据 df 和预期输出。编辑2:我稍微修改了数据,以便结果在每种情况下都不是与“cc”相关的统一最大数字。

我的问题是:

  • 我有一个数据框,其中有两个索引列,我按(Index1,Index2)和三列(X,Y,Z)分组
  • 我创建了一个 groupby 并向其应用了一个函数(将 groupby 对象中的所有列缩放为 1)
  • 我对生成的数据帧进行了总结,以获得每行的总和

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)

pandas pandas-groupby

4
推荐指数
1
解决办法
3972
查看次数

澄清熊猫 groupby 中的 lambda 运算符

我无法发表评论,因为我是 stackoverflow 的新手,所以不能直接在线程中提问,但我想澄清这个问题中的解决方案:

# 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()))
Run Code Online (Sandbox Code Playgroud)

我了解多索引选择(级别 0 与级别 1),但我不清楚xlambda 函数中的每个索引是指什么。将xx.sum()会向我提及level = 0(总结中的每个分组在所有的结果level = 0),但 …

python lambda pandas

3
推荐指数
1
解决办法
1290
查看次数

网络x中基于边缘颜色的图例

有没有办法根据边缘颜色(而不是节点颜色)在 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') 但是如何将其放入图例中?

如果有帮助,我很乐意分享数据和完整代码!

python matplotlib legend networkx

1
推荐指数
1
解决办法
2538
查看次数

标签 统计

pandas ×2

python ×2

lambda ×1

legend ×1

matplotlib ×1

networkx ×1

pandas-groupby ×1