В DataFrame как объединить два столбца с разделителем, только если существуют оба значения? - PullRequest
0 голосов
/ 30 марта 2019

Например, скажем, у меня есть следующий DataFrame

col1 col2
a    b
NaN  b
a    NaN

Если я просто сделаю

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

Я получу

a-b
-b
a-

Вместо этого я хочу

a-b
b
a

Я хочу включить разделитель, только если есть значения с обеих сторон

1 Ответ

1 голос
/ 30 марта 2019

Добавить 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...