在DataFrame中,只有两个值都存在时,才如何用分隔符连接两列?

时间:2019-03-30 02:46:11

标签: pandas dataframe

例如,说我有以下DataFrame

col1 col2
a    b
NaN  b
a    NaN

如果我只是做

df['col1'].fillna('')+'-'+df['col2'].fillna('')

我会得到

a-b
-b
a-

我想要的是

a-b
b
a

如果两边都有值,我只想包含分隔符

1 个答案:

答案 0 :(得分:1)

添加str.strip

(df['col1'].fillna('')+'-'+df['col2'].fillna('')).str.strip('-')
Out[367]: 
0    a-b
1      b
2      a
dtype: object

stackagg

df.stack().groupby(level=0).agg('-'.join)
Out[371]: 
0    a-b
1      b
2      a
dtype: object