У меня есть pandas DataFrame:
import pandas as pd
e = [{'E1': 'A', 'E2': 'B', 'E3': 'C', 'EDAY1': 0, 'EDAY2': 1, 'EDAY3': 2}, {'E1': 'B', 'E2': '0', 'E3': '0', 'EDAY1': 2, 'EDAY2': -1, 'EDAY3': -1}, {'E1': 'F', 'E2': 'A', 'E3': 'D', 'EDAY1': 5, 'EDAY2': 5, 'EDAY3': 2}]
df = pd.DataFrame(e)
display(df)
Выход:
E1 E2 E3 EDAY1 EDAY2 EDAY3
0 A B C 0 1 2
1 B 0 0 2 -1 -1
2 F A D 5 5 2
Где E1
- E3
- события, а EDAY1
- EDAY3
-дни, когда произошли соответствующие события.Обратите внимание:
- Если событие не произошло, оно помечается как '0', а соответствующему
EDAY
присваивается значение -1
- Событие
E1
имеет больший приоритет, чемE2
и E2
чем E3
- Приоритет события не соответствует
EDAY
(см. Последний ряд) - Некоторые события произошли в один и тот же день
Я хотел бы превратить эти события в строки длиной 10 символов на основе следующих критериев:
- Каждая позиция символа в строке приблизительно соответствует дню, когда произошло событие
- Дни, когда не было никаких событий, будут представлены символом '0'
- События, которые произошли в один и тот же день, будут отсортированы по уровню приоритета и установлены непосредственно рядом друг с другом (я понимаю, что этоне идеальное представление, но пока оно подойдет)
Поэтому, учитывая приведенный выше пример, я хотел бы получить следующее представление:
E1 E2 E3 EDAY1 EDAY2 EDAY3 E_STR
0 A B C 0 1 2 ABC0000000
1 B 0 0 2 -1 -1 00B0000000
2 F A D 5 5 2 00D00FA000
Обратите внимание, что этоне домашняя работа, но я новичок в Python и Pandas, и это поставило меня в тупик.