【问题标题】:Concatenate Each cell in column A with Column B in Python DataFrame将A列中的每个单元格与Python DataFrame中的B列连接起来
【发布时间】:2020-10-15 07:18:42
【问题描述】:

在将一列的每一行与数据框的另一列连接时需要帮助

输入:

输出

【问题讨论】:

    标签: python-3.x pandas dataframe concatenation


    【解决方案1】:

    在列表理解中使用itertools.product

    from  itertools import product
    
    L = [''.join(x) for x in product(df['Col1'], df['Col2'])]
    #alternative
    L = [a + b for a, b in product(df['Col1'], df['Col2'])]
    

    df = pd.DataFrame({'Col3':L})
    print (df)
     Col3
    0  AE
    1  AF
    2  AG
    3  BE
    4  BF
    5  BG
    6  CE
    7  CF
    8  CG
    

    或使用帮助列a 交叉连接解决方​​案:

    df1 = df.assign(a=1)
    df1 = df1.merge(df1, on='a')
    
    df = (df1['Col1_x'] + df1['Col2_y']).to_frame('Col3')
    

    【讨论】:

      【解决方案2】:

      备注:如果您复制用于创建输入的代码而不是图像,则更容易提供帮助,例如:

      import pandas as pd
      df=pd.DataFrame([['A', 'B', 'C', 'D'],['E', 'F', 'G', 'H']], columns=['col1', 'col2'])
      

      解决方案:最省力的是 itertools 库

      from itertools import product
      
      lst1 = ['A', 'B', 'C', 'D'] 
      lst2 = ['E', 'F', 'G', 'H']
      
      reslst = list(product(lst1, lst2))
      

      或作为数据框系列:

      reslst = list(product(df['col1'].values, df['col2'].values))
      
      print(reslst)
      

      注意: 如您所知,结果是一个长度为n**2 的列表,因此不能分配给原始数据帧。

      【讨论】:

        猜你喜欢
        • 2016-08-28
        • 1970-01-01
        • 2015-08-18
        • 1970-01-01
        • 1970-01-01
        • 2015-05-04
        • 1970-01-01
        • 1970-01-01
        • 2023-02-08
        相关资源
        最近更新 更多