Объединение нескольких строк данных из pandas данных в одну строку - PullRequest
0 голосов
/ 30 марта 2020

Я получил кадр данных pandas, состоящий из нескольких строк, где каждая строка является результатом теста некоторых медицинских значений для клинического пациента. Однако я хотел объединить все строки в одну строку для каждого пациента, содержащего результаты 12 измерений.

Первоначально информационный кадр состоит из 37 столбцов, где каждый пациент идентифицируется уникальным столбцом ['pid'], а также в столбце [«возраст»] указан возраст пациентов. Эти два столбца можно отбросить во всех, кроме первых, строках нового фрейма данных.

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

Мой подход был следующим:

train_features = pd.read_csv('train_features.csv')
train_features.sort_values(by=['pid','Time'], inplace=True)
measurements = []
for i in range(12):
    measurements.append(train_features.groupby(['pid'], as_index=False).nth(i))
    if( i > 0 ):
        measurements[i].drop(['pid', 'Age'], axis=1, inplace=True)
        columns = []
        for j in measurements[i].columns:
            columns.append('{}_{}'.format(j,i))
        measurements[i].columns = columns

aggregated_features = pd.concat(measurements[0:1], axis=1)

Сначала я сортирую фрейм данных по столбцу pid и времени. После этого я сохраняю в списке измерений каждый из фреймов данных, который содержит только n-ую строку отсортированного фрейма данных, это n-е измерение каждого пациента. Затем я переименовываю столбцы таким образом, чтобы, кроме первых результатов измерений, все жизненные значения получили индекс с добавленным номером измерения. Я также опускаю столбцы ['pid'] и ['age'] для каждого измерения, кроме первого. Когда я наконец соединил 12 фреймов данных снова в один, я заметил, что что-то пошло не так, потому что теперь в первом столбце после индекса столбец ['pid'] содержит много полей NaN, но в исходном фрейме данных столбцы ['pid'] не не содержит поля NaN.

Что я упустил в своей реализации? Есть ли лучшие подходы?

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