Объединение записей строк на основе данных в столбцах панд - PullRequest
0 голосов
/ 01 сентября 2018

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

     Company    LT    MT    ST
0    XYZ        A     -     -
1    XYZ        A     -     B
2    XYZ        -     C     B
3    ABC        R     -     -
4    ABC        R     -     B
5    DEF        A     B     -
6    DEF        A     B     B

я хочу создать dataframe, который может проверять, дублируется ли company или нет, и на основе проверки дублирования для нескольких столбцов LT, MT & ST. И если значения в этих столбцах являются повторяющимися, то объедините их в одну строку для одного и того же company имени. Вывести следующим образом:

    Company    LT    MT    ST
0   XYZ        A     C     B
1   ABC        R     -     B
2   DEF        A     B     B

Я пробовал с df.drop_duplicates(), но это не решает мою проблему.

1 Ответ

0 голосов
/ 01 сентября 2018

Используйте groupby и first с fillna

In [559]: (df.replace('-', np.nan)
             .groupby('Company', sort=False, as_index=False)
             .first()
             .fillna('-'))
Out[559]:
  Company LT MT ST
0     XYZ  A  C  B
1     ABC  R  -  B
2     DEF  A  B  B
...