Как определить измененные значения в группе - панды - PullRequest
0 голосов
/ 07 ноября 2018

Есть ли простой способ идентифицировать группы в кадре данных pandas, где значение столбца для группы изменилось (или где группа имеет несколько значений для определенного столбца)?

Итак, для двух компаний A и B, представленных ниже, я хотел бы знать, кто со временем перешел в другое состояние. (Подсказка, фирма A перешла с NC на SC).

-------------------
 Yr | Company| ST |  
-------------------
 1  | A      | NC |
 2  | A      | NC |
 3  | A      | SC |
 4  | A      | SC |
 1  | B      | AK |
 2  | B      | AK |
 3  | B      | AK |
------------------

В идеале я бы хотел, чтобы панды создали столбец, который показывает "Y", когда фирма переместилась:

---------------------------
 Yr | Company| ST |Changed|
---------------------------
 1  | A      | NC |    Y
 2  | A      | NC |    Y
 3  | A      | SC |    Y
 4  | A      | SC |    Y
 1  | B      | AK |    N
 2  | B      | AK |    N
 3  | B      | AK |    N
---------------------------

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

1 Ответ

0 голосов
/ 07 ноября 2018

Использование transform с nunique

df.groupby('Company').ST.transform('nunique').ne(1).map({True:'Y',False:'N'})
Out[418]: 
0    Y
1    Y
2    Y
3    Y
4    N
5    N
6    N
Name: ST, dtype: object
#df['Change']=df.groupby('Company').ST.transform('nunique').ne(1).map({True:'Y',False:'N'})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...