熊猫有条件地设置列值

时间:2020-02-03 20:25:30

标签: 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'   'Text8'  'Text3_Text8'
'Text4'   NaN      'Text4'
'Text5'   NaN      'Text5'    

可以用熊猫吗?

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

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

更新:

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

2 个答案:

答案 0 :(得分:0)

您是否正在寻找类似的东西?

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

答案 1 :(得分:0)

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