我想通过从Pandas 列返回第一个和最后一个连续的值来设置df的子集.Drop_duplciates
不起作用,因为它不考虑连续分组.我使用的是.shift()
(如下所示),但它只返回最后一个连续的值,即我想要的第一个和最后一个.
import pandas as pd
df = pd.DataFrame({"Item":['A', 'A', 'A', 'B', 'B', 'B', 'B', 'A', 'A'],
"Val1":[-20, -21, -20, -20, -20, -21, -20, -23, -22],
"Val2":[150, 151, 150, 148, 149, 150, 151, 150, 148]
})
df1 = df[df['Item'].ne(df['Item'].shift())]
print(df1)
预期输出:
Item Val1 Val2
0 A -20 150
2 A -20 150
3 B -20 148
6 B -20 151
7 A -23 150
8 A -22 148