检查数据帧(Python)中concat值的条件

检查数据帧(Python)中concat值的条件,python,pandas,dataframe,Python,Pandas,Dataframe,假设我有一个数据帧 身份证件 B C D E 1. b1_干管 无效的 d_值 e_值 2. b2_干管 无效的 无效的 e_值 按列'C'、'D'、'E'使用回填缺少的值,并选择第一列(此处C),然后添加到B列: df = df.replace('null', np.nan) df['B'] = df['B'] + ', ' + df[['C', 'D', 'E']].bfill(axis=1).iloc[:, 0] #selecting by colum name #df['B'] = df

假设我有一个数据帧

身份证件 B C D E 1. b1_干管 无效的 d_值 e_值 2. b2_干管 无效的 无效的 e_值
按列
'C'、'D'、'E'
使用回填缺少的值,并选择第一列(此处
C
),然后添加到
B
列:

df = df.replace('null', np.nan)
df['B'] = df['B'] + ', ' + df[['C', 'D', 'E']].bfill(axis=1).iloc[:, 0]
#selecting by colum name
#df['B'] = df['B'] + ', ' + df[['C', 'D', 'E']].bfill(axis=1)['C']
print (df)
    ID                 B   C        D        E
0  1.0  b1_main, d_value NaN  d_value  e_value
1  2.0  b2_main, e_value NaN      NaN  e_value
如有可能,所有
C、D、E
均由空值填充,可使用:

df = df.replace('null', np.nan)
s = df[['C', 'D', 'E']].bfill(axis=1)['C']
df['B'] = df['B'].str.cat(s, na_rep='', sep=', ').str.strip(' ,')