Multiindex Roll-Up Индикатор - PullRequest
       8

Multiindex Roll-Up Индикатор

0 голосов
/ 26 апреля 2018

Как можно свернуть мультииндексацию по дате и идентификатору и создать индикаторы?

+--------+-----+------+-------------+
|  Date  | ID  | Flag | Action Type |
+--------+-----+------+-------------+
| 201712 | 123 | -    | Delete      |
| 201712 | 456 | +    | Add         |
| 201712 | 123 | +    | Add         |
| 201801 | 123 | +    | Change      |
+--------+-----+------+-------------+

с выходом:

+--------+-----+------+--------------+
|  Date  | ID  | Flag | Action Type  |
+--------+-----+------+--------------+
| 201712 | 123 | *    | Add & Delete |
| 201712 | 456 | +    | Add          |
| 201801 | 123 | +    | Added Chg    |
+--------+-----+------+--------------+

1 Ответ

0 голосов
/ 26 апреля 2018

Вы можете использовать groupby и join

s=df.groupby(['Date','ID'],as_index=False).agg('&'.join)
s.Flag.str.len().gt(1)
Out[285]: 
0     True
1    False
2    False
Name: Flag, dtype: bool
s.loc[s.Flag.str.len().gt(1),'Flag']='*'
s
Out[287]: 
     Date   ID Flag  Actiontype
0  201712  123    *  Delete&Add
1  201712  456    +         Add
2  201801  123    +      Change
...