ошибка переиндексации из повторяющейся оси в groupby - PullRequest
8 голосов
/ 19 июня 2020
Блок

by = "B" имеет дублированные индексы как в case1, так и в case2,

почему case1 работает, а case2 нет.

case1

df1 = pd.DataFrame({"a":[0,100,200],  "by":["A","B","B"]}, index=[0,1,1])
df1.groupby("by").diff()  
# result is okay

case2

df2 = pd.DataFrame({"a":[0,100,200],  "by":["C","B","B"]}, index=[0,1,1])
df2.groupby("by").diff()  
# throws ValueError: cannot reindex from a duplicate axis

1 Ответ

0 голосов
/ 24 июня 2020

Я предполагаю, что .diff () обрабатывает отсортированные данные. Вы можете попробовать это:

df2 = pd.DataFrame({"a":[0,100,200],  "by":["C","B","B"]}, index=[0,1,1])
df2.sort_values(by='by').groupby("by").diff()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...