Pandas groupby agg заполняет таблицу копиями заголовков столбцов - PullRequest
0 голосов
/ 19 октября 2019

У меня есть DataFrame, содержащий текст, который разбивается на несколько строк, и я хочу объединить наборы строк с одинаковым индексом. Большую часть времени это работает. Однако в некоторых случаях вместо объединения столбцов он просто размазывает копии заголовков столбцов по всему DataFrame.

Я использую следующий код:

table = table.groupby(chosen_column).agg(lambda x: ' '.join(
        x.fillna('').drop_duplicates()))

Таблица до (после некоторой обработки):

   index                     no_header_2  no_header_3 no_header_4  no_header_3 unit_price  no_header_3
0    2.0             Production Supplies  22 MAY 2019           4         text      35.66       142.64
1    2.0             Production Supplies  22 MAY 2019           4         each      35.66       142.64
2    4.0  Supplier Product Number 123456  22 MAY 2019           6         each      13.24        79.44
3    4.0             Production Supplies  22 MAY 2019           6         each      13.24        79.44
4    6.0  Supplier Product Number 234567  22 MAY 2019           3         each      21.35        64.05
5    6.0             Production Supplies  22 MAY 2019           3         each      21.35        64.05
6    8.0  Supplier Product Number 345678  22 MAY 2019          10         each       6.03        60.30
7    8.0             Production Supplies  22 MAY 2019          10         each       6.03        60.30

Таблица после (обрезается при печати) Это такжеМне не понятно, почему индекс добавляется в качестве заголовка уровня 2 и ниже напечатан в отдельной строке.

                                                        index  ...                                        no_header_3
unit_price                                                     ...                                                   
13.24       index no_header_2 no_header_3 no_header_4 no_h...  ...  index no_header_2 no_header_3 no_header_4 no_h...
21.35       index no_header_2 no_header_3 no_header_4 no_h...  ...  index no_header_2 no_header_3 no_header_4 no_h...
35.66       index no_header_2 no_header_3 no_header_4 no_h...  ...  index no_header_2 no_header_3 no_header_4 no_h...
6.03        index no_header_2 no_header_3 no_header_4 no_h...  ...  index no_header_2 no_header_3 no_header_4 no_h...

Любой совет будет оценен. Я пытаюсь выяснить, какие заголовки копируются в каждую ячейку, как это, и я пытаюсь найти правильный способ сделать это. Цель состоит в том, чтобы весь текст с одинаковым индексом был добавлен в одну ячейку с удалением дубликатов.

1 Ответ

0 голосов
/ 19 октября 2019

Вы можете преобразовать фрейм данных в список питонов с помощью

DF.values.tolist() 

, а затем вы можете использовать string.join() в каждом списке. Это всегда будет работать для вас.

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