У меня есть следующий набор данных:
date | name
2018-06-01 | John
2018-06-01 | Jake
2018-06-01 | Allan
2018-07-01 | Kate
2018-07-01 | Jake
2018-07-01 | Joe
(дата указана в качестве индекса)
Что я пытаюсь достичь: - для каждой группы периодов (например, aмесяц) - определить элементы (имена), которые были введены или удалены
Таким образом, результирующий набор данных, как я представляю, будет выглядеть так:
date | action | name
2018-06-01 | Joiner | John
2018-06-01 | Joiner | Jake
2018-06-01 | Joiner | Allan
2018-07-01 | Joiner | Kate
2018-07-01 | Joiner | Joe
2018-07-01 | Withdrawal | John
2018-07-01 | Withdrawal | Allan
Я использую кадры данных Pandas. Полумологическое объяснение того, что я думаю, мне нужно сделать:
set = [] # resulting data set
for date, new_df in df.groupby(level=0): # breaking down the original set based the data into subsets
for i in new_df: # iterating through each subset
if (i in new_df-1): # comparing elements of each subset to the previous one
set_element = {definition of a "joiner element"}
set.append(set_element) # adding an element to a resulting data set
else:
if (i not in new_df-1):
set_element = {definition of a "withdrawal element"}
else:
pass
в тот момент, когда я получаю
"unsupported operand type(s) for -: 'str' and 'int'"
Так что что-то подсказывает мне, что я не могу использовать наборы длясравнение строк ... или я сравниваю неправильные элементы ...