【问题标题】:Combining Columns Pandas df组合列 Pandas df
【发布时间】:2018-07-06 05:08:10
【问题描述】:

我正在尝试在 df 中合并两列,但在两个值之间保留一个空格

对于下面的df,我可以通过以下方式将它们组合起来。

d = ({
    'A' : ['Foo','Bar','Foo'],     
    'B' : ['A','B','C'],
    })

df = pd.DataFrame(data=d)

df["Com"] = df["A"].map(str) + df["B"]

输出:

     A  B   Com
0  Foo  A  FooA
1  Bar  B  BarB
2  Foo  C  FooC

但我想在两者之间留一个空间。所以预期的输出是:

     A  B    Com
0  Foo  A  Foo A
1  Bar  B  Bar B
2  Foo  C  Foo C

【问题讨论】:

    标签: python pandas merge


    【解决方案1】:

    我认为你可以简单地得到输出

        df['Com']=df['A'] + ' ' + df['B']
    

    python 足够聪明。

    【讨论】:

      【解决方案2】:

      您可以添加带有空格的新字符串:

      df["Com"] = df["A"].map(str) + ' ' + df["B"]
      print (df)
           A  B    Com
      0  Foo  A  Foo A
      1  Bar  B  Bar B
      2  Foo  C  Foo C
      

      Python 3.6 解决方案:

      df["Com"] = [f'{i} {j}' for i, j in zip(df["A"], df["B"])]
      print (df)
           A  B    Com
      0  Foo  A  Foo A
      1  Bar  B  Bar B
      2  Foo  C  Foo C
      

      Python 3 解决方案:

      df["Com"] = ['{} {}'.format(i, j) for i, j in zip(df["A"], df["B"])]
      

      【讨论】:

        【解决方案3】:

        只需对DataFrame使用apply函数

        df['Com'] = df.apply(lambda x: x['A']+' '+x['B'], axis=1)
        df
        Out[25]: 
             A  B    Com
        0  Foo  A  Foo A
        1  Bar  B  Bar B
        2  Foo  C  Foo C
        

        【讨论】:

          猜你喜欢
          • 2017-04-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-08-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-12-20
          相关资源
          最近更新 更多