Python 每个列id删除前n行

Python 每个列id删除前n行,python,pandas,Python,Pandas,示例数据帧 df = pd.DataFrame(np.random.randint(2200, 3300, 50), index=[np.random.randint(0,6, 50)] ,columns=list('A')) 下面是数据的示例 A 5 2393 4 2421 0 3038 5 2914 4 2559 4 2314 5 3006 3 2553 0 2642 3 2441 3 2512 0 2412 我想做的是删除索引的前n条(本例中使用2条)记

示例数据帧

df = pd.DataFrame(np.random.randint(2200, 3300, 50), index=[np.random.randint(0,6, 50)] ,columns=list('A'))
下面是数据的示例

    A
5  2393
4  2421
0  3038
5  2914
4  2559
4  2314
5  3006
3  2553
0  2642
3  2441
3  2512
0  2412
我想做的是删除索引的前n条(本例中使用2条)记录。因此,从前面的数据示例来看,它将变成

    A
4  2314
5  3006
3  2512
0  2412

如有任何指导,将不胜感激。我没能让任何东西工作。

使用
tail
-2

s.groupby(level=0, group_keys=False).apply(pd.DataFrame.tail, n=-2)

      A
0  2412
3  2512
4  2314
5  3006
真的要把它搞定

s.groupby(level=0, group_keys=False, sort=False).apply(pd.DataFrame.tail, n=-2)

      A
5  3006
4  2314
0  2412
3  2512

如果我理解您的问题,您需要一个新的数据帧,该数据帧删除了数据帧的第一行
n
。如果这是您想要的,我会重置索引,然后根据pandas的默认索引删除,然后放回原始索引。下面是你可以怎么做的

df = pd.DataFrame(data=np.random.randint(2200, 3300, 50), 
                  index=np.random.randint(0,6, 50),
                  columns=list('A'))
n = 5
print(df.head(n * 2))
df_new = df.reset_index().drop(range(n)).set_index('index')
print(df_new.head(n))

比我想做的好多了!非常好,谢谢你。我对它做了一些调整,删除了3条记录,并使用了一列而不是索引。df=df.groupby('SN',group_keys=False)。应用(pd.DataFrame.tail,n=-3)