Python 使用DataFrame在新的短语列中连接2列

Python 使用DataFrame在新的短语列中连接2列,python,pandas,dataframe,Python,Pandas,Dataframe,我有这样一个数据帧: >>> df = pd.DataFrame({'id_sin':['s123','s124','s125','s126','s127'], 'num1':[12,10,23,6,np.nan], 'num2':['BG','TC','AB','RC',np.nan], 'fr':[1,1,1,1,0], }) >>> df

我有这样一个数据帧:

>>> df = pd.DataFrame({'id_sin':['s123','s124','s125','s126','s127'],
                   'num1':[12,10,23,6,np.nan],
                   'num2':['BG','TC','AB','RC',np.nan],
                   'fr':[1,1,1,1,0],
})
>>> df
   fr id_sin  num1 num2
0   1   s123    12   BG
1   1   s124    10   TC
2   1   s125    23   AB
3   1   s126     6   RC
4   0   s127   NaN  NaN
我想将列
num1
&
num2
(num2是num1)连接在一个短语中,fr为1:

   fr id_sin  num1 num2    phrase
0   1   s123    12   BG  BG is 12
1   1   s124    10   TC  TC is 10
2   1   s125    23   AB  AB is 23
3   1   s126     6   RC   RC is 6
我试过这个,但不起作用:

df['phrase'] = str(df['num2']) + ' is ' + str(df['num1'])
编辑
如果希望
num1
没有十进制
.0
,请将其转换为
Int64

df.num1 = df.num1.astype('Int64')

Out[32]:
  id_sin  num1 num2  fr
0   s123    12   BG   1
1   s124    10   TC   1
2   s125    23   AB   1
3   s126     6   RC   1
4   s127   NaN  NaN   0
尝试
Series.str.cat

df.num2.str.cat(df.num1.astype(str), sep=' is ')

Out[2055]:
0    BG is 12
1    TC is 10
2    AB is 23
3     RC is 6
4         NaN
Name: num2, dtype: object

关于@rafael评论。他的作品,只是其中的打字错误导致了错误。它是:

dn['num2'].astype(str) + ' is ' + dn['num1'].astype(str)

df['num2'].astypr(str)+'is'+df['num21].astypr(str)
df['num1','num2']].apply(lambda x:f“{x[0]}is{x[1]}”,1)“不起作用”没有用。怎么搞的?您是否使用
df['phrase']=…
?@SabiriS重新分配了任务,如果您发布了错误,其他人可以帮助您解决。请在你的问题中(而不是在评论中)以适当的格式发布,以便所有读者都能清楚地看到。有人回答了,谢谢大家!这就是我要找的,我如何删除数字末尾的.0?谢谢!谢谢!工作起来很有魅力@萨比里斯:我很高兴能帮上忙。