我有以下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数据类型,但不适用于字符串。
答案 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