Python 有条件地设置列值

Python 有条件地设置列值,python,pandas,Python,Pandas,我有下面的excel A B 'Text1' NaN 'Text2' 'Text7' 'Text3' 'Text8' 'Text4' NaN 'Text5' NaN 我想有条件地设置第三列 仅当B不为空时,才将C列设置为A+'.'+B。如果B为空,则将C设置为A A B C 'Text1' NaN 'Text1' 'Text2' 'Text7' 'Text2_Text7' 'Text3' '

我有下面的excel

 A         B    
'Text1'   NaN
'Text2'   'Text7'
'Text3'   'Text8'
'Text4'   NaN
'Text5'   NaN
我想有条件地设置第三列

仅当B不为空时,才将C列设置为A+'.'+B。如果B为空,则将C设置为A

 A         B        C
'Text1'   NaN      'Text1'
'Text2'   'Text7'  'Text2_Text7' 
'Text3'   'Text8'  'Text3_Text8'
'Text4'   NaN      'Text4'
'Text5'   NaN      'Text5'    
有可能用熊猫来做吗

到目前为止,我有以下代码

import pandas as pd
df = pd.read_excel('example.xlsx')
更新:


我已将值更新为字符串。我认为给出的解决方案适用于int数据类型,但不适用于string

你在找这样的东西吗?

df.fillna(value=0, inplace=True)
df['C'] = df.A + df.B
import numpy as np
df.replace(0, np.nan, inplace=True)


   A    B    C
0  1  NaN  1.0
1  2  4.0  6.0
2  3  5.0  8.0
3  4  NaN  4.0
4  5  NaN  5.0

当您使用
print(df)
时,这些是缺少的值
NaN
还是实际的空格?请尝试对空的和非enpty的df.b使用两个单独的命令:
df.loc[~df.b.isna(),'c']=df.a+df.b
df.b.isna(),'c']=df.a@RuslanS。您的解决方案成功了!。请把它贴出来作为答案,这样我就可以标记它了。
df = pd.DataFrame({'A': [1,2,3,4,5], 'B': [np.nan, 4,5, np.nan,np.nan]})
df['C'] = df['A'].add(df['B']).fillna(df['A']) 
   A    B    C
0  1  NaN  1.0
1  2  4.0  6.0
2  3  5.0  8.0
3  4  NaN  4.0
4  5  NaN  5.0