从边列表

时间:2017-10-07 01:39:11

标签: python pandas dataframe

示例数据:

data = { 
    'node1': [1, 1,1, 2,2,5],
 'node2': [8,16,22,5,25,10],
 'weight': [1,1,1,1,1], }
df = pd.DataFrame(data, columns = ['node1','node2','weight'])

给定数据是边缘列表,第一列指示node 1,第二列显示直接连接到第一个节点的节点。 给定边缘列表,column 1node1column 2node2和权重。 我想创建一个矩阵,每行代表给定节点的所有直接边。 (使用Pandas Dataframe,每一行都是一个节点,其中的列是给定节点的直接边)。

输出:

8   16  22

5   25  0

0   0   0

0   0   0

10  0   0

1 个答案:

答案 0 :(得分:1)

IIUC

a

为了让你出局,你可以T1 + df=df.assign(Cu=df.groupby('node1').cumcount()).set_index('Cu').groupby('node1').apply(lambda x : x['node2']*x['weight']).unstack('Cu').fillna(0) df Out[71]: Cu 0 1 2 node1 1 8.0 16.0 22.0 2 5.0 25.0 0.0 5 10.0 0.0 0.0

编辑:注意你的预期输出contian全部为0行,

reindex
相关问题