从 groupby 中的重复轴错误重新索引

jun*_*ang 13 python pandas pandas-groupby

by = "B" 块在 case1 和 case2 中都有重复的索引,

为什么 case1 可以工作,而 case2 不行。

情况1

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

案例2

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
Run Code Online (Sandbox Code Playgroud)

小智 0

我假设 .diff() 处理排序数据。你可以试试这个:

df2 = pd.DataFrame({"a":[0,100,200],  "by":["C","B","B"]}, index=[0,1,1])
df2.sort_values(by='by').groupby("by").diff()
Run Code Online (Sandbox Code Playgroud)