Python перебирает столбец, добавляет ',' между значениями и применяет к ячейке в другом столбце - PullRequest
0 голосов
/ 27 июня 2018

Мне нужно перебрать один столбец и добавить запятую ',' к каждому значению, а затем объединить все значения в одну ячейку в другом столбце (все ячейки ниже этого не имеют значения, обозначенного как «отсутствует содержимое / пустая ячейка»). ):

Raw data:                  output:
ID                         ID new
123                        123,456,789...
456                        no contents/blank cell
789                        no contents/blank cell

Код, который у меня пока есть:

import pandas as pd

#bring in dataset-
DF = pd.read_excel('c:/Desktop/List.xlsx', sheet_name="Sheet1")

DFlist = list(set(DF['ID']))
string = ",".join(map(str,DFlist))

print(string)

Это производит именно то, что мне нужно, однако мне нужно ввести это в кадр данных в другой столбец. И в настоящее время, когда я запускаю следующий код, я получаю сообщение об ошибке, что python pandas не нравится имя моего столбца:

DF['col'] = string + DF['col'].astype(str)

Помимо того, что приведенный выше код, скорее всего, неверен, панды не примут:

DF['col']....

1 Ответ

0 голосов
/ 27 июня 2018

Это делает то, что вы ищете?

df['col'] = ''  # initialize a blank column
df['col'].iloc[0] = ','.join([str(ident) for ident in df['ID'].unique()])

Тестирование на небольшом кадре данных, в котором все идентификаторы, разделенные запятыми, помещаются в первую ячейку столбца 'col', а остальные будут пустыми. Обратите внимание, что использование set() означает, что ваши идентификаторы не обязательно будут в каком-то определенном порядке, поэтому я использовал df['ID'].unique().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...