如何从复杂的嵌套字典列表创建数据框邻接矩阵?

时间:2020-06-19 01:30:51

标签: python pandas dataframe adjacency-matrix

我有一个字典和下面的列表的JSON嵌套值

relationship = 
{ 'DataCentre.java': 
  { 
      jRELATIVE:\RoundRobinDataCentreImplementation\src\com\datacentre\impl 
      \RRDataCenterBroker.java: [Java Call - 
      com.datacentre.impl.RRDataCenterBroker.RRDataCenterBroker - 

      RELATIVE:\RoundRobinDataCentreImplementation\src\com\datacentre\
      impl\DataCentre.java

      (369,27), Java Create - com.datacentre.impl.RRDataCenterBroker - 

       RELATIVE:\RoundRobinDataCentreImplementation\src\com\datacentre\impl
       \DataCentre.java(369,27)], 

       jRELATIVE:\RoundRobinDataCentreImplementation\src\com\datacentre\impl
       \Hosts.java: [Java Call - com.datacentre.impl.Hosts.Hosts -



        RELATIVE:\RoundRobinDataCentreImplementation\src\com\datacentre\impl
        \DataCentre.java(297,36), Java Create - com.datacentre.impl.Hosts - 
        RELATIVE:\RoundRobinDataCentreImplementation\src\com\datacentre\impl
        \DataCentre.java(297,36), Java Call Nondynamic - 
        com.datacentre.impl.Hosts.getWithMinimumNumberOfPesEquals - 
        RELATIVE:\RoundRobinDataCentreImplementation\src\com\datacentre\impl
        \DataCentre.java(319,55), Java Call Nondynamic - com.datacentre.impl.Hosts.size - 
        RELATIVE:\RoundRobinDataCentreImplementation\src\com\datacentre\impl
        \DataCentre.java(322,66), Java Typed - com.datacentre.impl.Hosts - 
        RELATIVE:\RoundRobinDataCentreImplementation\src\com\datacentre\impl
        \DataCentre.java(292,30)], 
        jRELATIVE:\RoundRobinDataCentreImplementation\src\com\datacentre\impl
        \RRVmAllocation.java: [Java Call - 
         com.datacentre.impl.RRVmAllocation.RRVmAllocation - 
         RELATIVE:\RoundRobinDataCentreImplementation\src\com\datacentre\impl
         \DataCentre.java(279,55), Java Create - com.datacentre.impl.RRVmAllocation - 
         RELATIVE:\RoundRobinDataCentreImplementation\src\com\datacentre\impl
         \DataCentre.java(279,55), Java Typed - 
         com.datacentre.impl.RRVmAllocation - 
         RELATIVE:\RoundRobinDataCentreImplementation\src\com\datacentre\impl
         \DataCentre.java(279,24)]}, 'RRVmAllocation.java': 

            {
                   jRELATIVE:\RoundRobinDataCentreImplementation\src\com
                   \datacentre\impl\HostList.java: [Java Call - 
                   com.datacentre.impl.HostList.HostList - 
                   RELATIVE:\RoundRobinDataCentreImplementation\src\com
                   \datacentre\impl\RRVmAllocation.java(28,33), Java Create - 
                   com.datacentre.impl.HostList - 
                   RELATIVE:\RoundRobinDataCentreImplementation\src\com
                   \datacentre\impl\RRVmAllocation.java(28,33), Java Call 
                   Nondynamic - com.datacentre.impl.HostList.next - 
                   RELATIVE:\RoundRobinDataCentreImplementation\src\com
                   \datacentre\impl\RRVmAllocation.java(39,39), Java Typed - 
                   com.datacentre.impl.HostList - 
                   RELATIVE:\RoundRobinDataCentreImplementation\src\com
                   \datacentre\impl\RRVmAllocation.java(24,22)]

            }, 

            'HostList.java': {}, 
            'Hosts.java': {}, 
            'RRDataCenterBroker.java': {}
}

headers = list(relationship.keys())

y = dict()
        for key in relationship:
            new_list = []
            new_list.append(relationship.get(key))
            #print(key)
            #print(new_list)
            for i in range(len(new_list)):
                for k in new_list[i]:
                    print('key is ' + key)
                    print('relation is ')
                    print(k)
                    print('value is ')
                    print(len(new_list[i][k]))
                y = dict()

am = pd.DataFrame(np.zeros(shape=(5,5)), columns=list(headers), index=list(headers))
        print(am)

行和标题的字符串值之间的关系具有整数值 len(new_list [i] [k])

我想生成具有行和列标题的2D邻接关系,如下图所示,矩阵i [i] [j]的行列i == j为0,并且我在上面的代码 len(new_list [i] [k])

到目前为止,我已经为上述示例创建了一个5 * 5的矩阵,其值为np.zeros。

enter image description here

0 个答案:

没有答案