【问题标题】:Find all possible pairs and store in a list of list of list查找所有可能的对并存储在列表列表中
【发布时间】:2021-10-01 23:41:43
【问题描述】:

对于下面的df

Names        Henry    Adam   Rachel  Jug   Jesscia  May   Peter
Robert         54      0        0     6       5      8      24
Dan            22      31       0     0       55     4       8

我想在下面的 df 中找到所有可能的具有数值的列对(Henry、Adam、Rachel、Jug、Jesscia、May、Peter,)并将它们的值作为列表的列表追加。

例如:

[[[54,22],[0,31]], [[54,22],[6,0]]......] 

其中 [54,22],[0,31] 是第一对 我将非常感谢任何帮助!

【问题讨论】:

    标签: python arrays python-3.x pandas list


    【解决方案1】:

    我们可以select_dtypes 只获取数字列,然后transpose (T) 并将DataFrame values 转换为列表。最后使用permutations 得到所有可能的长度为 2 的对:

    from itertools import permutations
    
    import pandas as pd
    
    df = pd.DataFrame({
        'Names': ['Robert', 'Dan'], 'Henry': [54, 22], 'Adam': [0, 31],
        'Rachel': [0, 0], 'Jug': [6, 0], 'Jesscia': [5, 55], 'May': [8, 4],
        'Peter': [24, 8]
    })
    
    output = list(
        map(list,
            permutations(df.select_dtypes(include='number').T.values.tolist(), 2)
            )
    )
    

    output:

    [[[54, 22], [0, 31]],
     [[54, 22], [0, 0]],
     [[54, 22], [6, 0]],
     [[54, 22], [5, 55]],
     [[54, 22], [8, 4]],
     [[54, 22], [24, 8]],
     [[0, 31], [54, 22]],
     [[0, 31], [0, 0]],
     [[0, 31], [6, 0]],
     [[0, 31], [5, 55]],
     [[0, 31], [8, 4]],
     [[0, 31], [24, 8]],
     [[0, 0], [54, 22]],
     [[0, 0], [0, 31]],
     [[0, 0], [6, 0]],
     [[0, 0], [5, 55]],
     [[0, 0], [8, 4]],
     [[0, 0], [24, 8]],
     [[6, 0], [54, 22]],
     [[6, 0], [0, 31]],
     [[6, 0], [0, 0]],
     [[6, 0], [5, 55]],
     [[6, 0], [8, 4]],
     [[6, 0], [24, 8]],
     [[5, 55], [54, 22]],
     [[5, 55], [0, 31]],
     [[5, 55], [0, 0]],
     [[5, 55], [6, 0]],
     [[5, 55], [8, 4]],
     [[5, 55], [24, 8]],
     [[8, 4], [54, 22]],
     [[8, 4], [0, 31]],
     [[8, 4], [0, 0]],
     [[8, 4], [6, 0]],
     [[8, 4], [5, 55]],
     [[8, 4], [24, 8]],
     [[24, 8], [54, 22]],
     [[24, 8], [0, 31]],
     [[24, 8], [0, 0]],
     [[24, 8], [6, 0]],
     [[24, 8], [5, 55]],
     [[24, 8], [8, 4]]]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-15
      相关资源
      最近更新 更多