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?谢谢!谢谢!工作起来很有魅力@萨比里斯:我很高兴能帮上忙。