我有一个2500行的数据帧。我正在尝试删除前n行,并在不更改索引的情况下向上移动剩余行。我举了一个我的问题和我想要的例子
df =
A
10 10.5
11 20.5
12 30.5
13 40.5
14 50.5
15 60.5
16 70.5
在上面的文章中,我想删除最上面的两行,并在不干扰索引的情况下上移剩余的行。我的代码和当前输出:
idx = df.index
df.drop(df.index[:2],inplace=True)
df.set_index(idx[:len(df)],inplace=True)
df =
A
10 30.5
11 40.5
12 50.5
13 60.5
14 70.5
我得到了我想要的输出。有更好的方法吗?比如,一行代码?
您可以使用iloc
删除行,并将索引设置为不包含最后2个值的原始索引。
df = df.iloc[2:].set_index(df.index[:-2])
df = pd.DataFrame(df.A.shift(-2).dropna(how='all'))
您还可以使用shift((删除生成的Na行,以创建数据帧。