熊猫最后一排

时间:2016-09-01 05:35:57

标签: python pandas

有没有办法获取和删除最后一行,如python本地列表的pop方法?

我知道我可以在下面做。我只是想让它成为一条线。

df.ix[df.index[-1]]
df = df[:-1]

2 个答案:

答案 0 :(得分:7)

假设样本数据帧:

In[51]:df
Out[51]: 
   a  b
0  1  5
1  2  6
2  3  7
3  4  8

您可以使用df.drop

In[52]:df,last_row=df.drop(df.tail(1).index),df.tail(1)

In[53]:df
Out[53]: 
   0  1
0  1  5
1  2  6
2  3  7

In[54]:last_row
Out[54]: 
   a  b
3  4  8

或使用numpy作为np

df,last_row=pd.Dataframe(np.delete(df.values,(-1),axis=0)),df.tail(1)

答案 1 :(得分:1)

我测试了两种方法来做到这一点:df = df[: -1]df = df.drop(df.index[-1])。第一个效率更高

这是 3000 行的测试。

from datetime import datetime
start = datetime.now()
while df.shape[0] > 1:
    df = df.drop(df.index[-1])
print(datetime.now() - start)

结果:0:00:01.558176

还有, df = df.drop(df.index[-1])

from datetime import datetime
start = datetime.now()
while prices.shape[0] > 1:
    prices = prices[: -1]
print(datetime.now() - start)

结果:0:00:00.337987