Pandas合并列

2024-09-29 21:31:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试在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

Tags: 方法commapdataframedfdatafoobar
3条回答

我认为你可以通过

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

Python很聪明。你知道吗

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

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"])]

只需对数据帧使用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

相关问题 更多 >

    热门问题