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)