代码之家  ›  专栏  ›  技术社区  ›  EmilyB

在python中使用itertools

  •  -1
  • EmilyB  · 技术社区  · 7 年前

    我正在导入一个csv文件,其中的数据看起来像

    25
    34
    45
    23
    34
    23
    24
    
        import itertools
        import pandas as pd
        filename = 'myFile.csv'
        myArray1 = pd.read_csv(filename, header=None)
    
        myArray2 = pd.read_csv(filename, header=None)
    
    
        for a, b  in itertools.product(myArray1, myArray2):
            print(a,b)
    

    但它只输出

    0 0
    

    当我跑步时:

    myArray1 = [2,3,4]
    myArray2 = [4,5,6]
    for a, b  in itertools.product(myArray1, myArray2):
        print(a,b)
    

    输出如下

    2 4
    2 5
    2 6
    3 4
    3 5
    3 6
    4 4
    4 5
    4 6
    

    1 回复  |  直到 7 年前
        1
  •  4
  •   user2357112    7 年前

    默认情况下,数据帧上的迭代发生在其列标签上。在您的情况下,只有一列被标记为 0 在每个数据帧中,最终得到一个输出 (0, 0) .

    作为解决方案,您需要提取这些值,并且 将其传递给 product

    data = pd.read_csv(filename, header=None).iloc[:, 0].values.tolist()
    for a, b in itertools.product(data, data):
        print(a, b)