我正在尝试实现一种更有效的方法来返回等于特定值的 pandas
df
的第一个和最后一个项。我将在下面发布我当前的方法,但可能有更有效的方法。
import pandas as pd
d = ({
'X' : ['X','Y','X','Z','X'],
'Y' : [2,5,3,5,1],
})
df = pd.DataFrame(data=d)
我想要返回在X == X
条件下Y
的第一个和最后一个元素。
这是我的尝试,但我认为可能有更高效的方法。
df = df[df['X'] == 'X']
df_first = df.drop_duplicates(subset=['X'], keep = 'first')
df_last = df.drop_duplicates(subset=['X'], keep = 'last')
df1 = pd.concat([df_first, df_last])
# my expected output
df1
X Y
0 X 2
4 X 1