объединить / объединить построчный pandas кадр данных - PullRequest
1 голос
/ 08 февраля 2020

У меня есть следующий фрейм данных:

Date/Time           P1      P2      P83     ON      OFF
2014-01-13 11:41                    path 83     
2014-01-13 11:41                                    offline
2014-03-26 14:37    path 1              
2014-03-26 14:37                                    offline
2014-03-26 14:37                    path 83     
2014-03-26 15:33    path 1              
2014-03-26 15:33                            online  
2014-04-25 5:44             path 2          
2014-04-25 5:44                                     offline

Я хотел бы объединить строки с одинаковым индексом и заполнить столбцы. Никогда не будет случая, чтобы один столбец имел значения для одного и того же индекса, то есть значения столбца не имеют значения sh. Желаемый вывод - это фрейм данных:

Date/Time           P1      P2      P3      ON      OFF
2014-01-13 11:41                    path 83         offline
2014-03-26 14:37    path 1          path 83         offline
2014-03-26 15:33    path 1                  online
2014-04-25 5:44             path 2                  offline

Большое спасибо:)

1 Ответ

1 голос
/ 08 февраля 2020

Сгруппируйте ключ и примените .first()

agg = df.groupby('Date/Time').first()

Создать новый столбец для «статуса»:

agg['STATUS'] = agg['ON'].fillna(agg['OFF'])

Удалить столбцы, если необходимо:

agg.drop(['ON', 'OFF'], axis=1, inplace=True)

Оставляет вас agg как:

                      P1      P2      P83   STATUS
Date/Time                                         
2014-01-13 11:41     NaN     NaN  path 83  offline
2014-03-26 14:37  path 1     NaN  path 83  offline
2014-03-26 15:33  path 1     NaN      NaN   online
2014-04-25 5:44      NaN  path 2      NaN  offline
...