例如,说我有以下DataFrame
col1 col2
a b
NaN b
a NaN
如果我只是做
df['col1'].fillna('')+'-'+df['col2'].fillna('')
我会得到
a-b
-b
a-
我想要的是
a-b
b
a
如果两边都有值,我只想包含分隔符
答案 0 :(得分:1)
添加str.strip
(df['col1'].fillna('')+'-'+df['col2'].fillna('')).str.strip('-')
Out[367]:
0 a-b
1 b
2 a
dtype: object
stack
和agg
df.stack().groupby(level=0).agg('-'.join)
Out[371]:
0 a-b
1 b
2 a
dtype: object