Объедините два столбца, игнорируйте пустые ячейки и добавьте разделитель - PullRequest
0 голосов
/ 14 декабря 2018

Мне нужно объединить столбец 1 и 2 в 3 с разделителем ,, но игнорировать пустые ячейки.Итак, у меня есть этот фрейм данных:

         1     2
0  A, B, B     D
1           C, D
2  B, B, C  D, A

И мне нужно создать столбец 3 (желаемый результат):

         1     2              3
0  A, B, B     D     A, B, B, D
1           C, D           C, D
2  B, B, C  D, A  B, B, C, D, A

Итак, как вы видите здесь, пустая продажа была проигнорирована и , отдельные элементы между ними в df ["3"] (B, B, C, D, A).

Я пытаюсь сделать это с помощью простой конкатенации, но безуспешно.

Если я просто объединю df["1"] + df["2"], я получу, что последний элемент первого столбца объединяется с первым элементом последнего столбца (BD, CD):

         1     2            3
0  A, B, B     D     A, B, BD
1           C, D         C, D
2  B, B, C  D, A  B, B, CD, A

Еслиadd "," (df["1"] + ", " + df["2"]):

         1     2              3
0  A, B, B     D     A, B, B, D
1           C, D         , C, D
2  B, B, C  D, A  B, B, C, D, A

Вы увидите, что каждая пустая ячейка заменяется на "," и добавляется в df ["3"] (пример = , C, D, но мне нужноC, D).

Код для воспроизведения:

import pandas as pd
df = pd.DataFrame({"1":["A, B, B","","B, B, C"], "2":["D","C, D","D, A"]})
print(df)

1 Ответ

0 голосов
/ 14 декабря 2018

Используйте str.strip для возможного удаления , с обеих сторон:

(df["1"] + ", " + df["2"]).str.strip(', ')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...