Возьмите вывод и объедините его с другим фреймом данных в качестве нового столбца. - PullRequest
0 голосов
/ 05 февраля 2019

У меня есть два кадра данных, df1 и df2, построенные из одного и того же набора данных относительно некоторой информации о пациенте.

df1 содержит информацию о том, как долго пациенты находились на разных в / в одних и тех же типах, поэтому для одного и того же пациента может быть несколько рядов, где каждый ряд представляет собой разную в / в.

В df2 каждый ряд представляет отдельного пациента, а столбцы показывают общее количество дней, в течение которых пациент находился на определенном типе внутривенного вливания.

Обсуждаемые нами столбцы - «FIN» и «Line Days».«FIN» однозначно идентифицирует пациентов и документы «Строковые дни», сколько дней было в конкретном IV.

В df1 я сгруппировал строки по «FIN», а затем суммировал столбцы «Дни строк» ​​длякаждый отдельный 'FIN.'Теперь я хочу взять вывод этого groupby.agg () и добавить его в качестве нового столбца в df2, сопоставив 'FIN.'

def sum_col(df, col1, col2):
    tot_line = df.groupby(col1)[col2].agg('sum')
    return tot_line

CVL_totals = sum_col(CVL_data, 'FIN', '# Line days')

Вывод выглядит так: (ПРИМЕЧАНИЕ: Фактические значения FIN не отображаются)

FIN
000000000    12
111111111    3
222222222    32
333333333    7

Теперь я хочу объединить это с df2 в 'FIN', но я не могу этого сделать, поскольку выходные данные не являются кадрами данных.

1 Ответ

0 голосов
/ 05 февраля 2019

cvl_totals должен быть объектом Series, который можно превратить в DataFrame, используя метод to_frame() , а затем объединить его с df2.

Однако, похоже, что вывыполняется группировка по столбцу, поэтому, если вы хотите расширить значения по строкам (т. е. все столбцы с одним FIN будут иметь одинаковые значения cvl_total), вы можете сделать это, как описано здесь: Условно заполнить значения столбцов на основев других столбцах значение в пандах

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