Python&熊猫:选择条目后重新编制索引

时间:2015-08-10 06:33:39

标签: python pandas

在我的初始数据中,有一些有问题的数据,我想让它们一个人留下,所以我做df = df[(df['direction'] < 100) & (df['speed'] < 400)]

但是,当我尝试访问df.ix[100]之类的单个条目时,数据可能是in-accessible,因为它在条件选择中是超选的。所以我想重新索引数据,我该怎么做?

在播放了一段时间之后,我意识到初始查询df = df[(df['direction'] < 100) & (df['speed'] < 400)]似乎没有创建新变量,而是创建原始数据的视图,这让我更加困惑。

那么,如何在查询后重新索引数据?或者我应该drop代替?

1 个答案:

答案 0 :(得分:3)

如果我正确理解了您的问题,您可以使用.reset_index(drop=True)将索引重置为默认的连续整数。

import pandas as pd
import numpy as np

# sample data
# ====================================
np.random.seed(0)
df = pd.DataFrame(np.random.randn(5,2), columns=list('AB'))
df

        A       B
0  1.7641  0.4002
1  0.9787  2.2409
2  1.8676 -0.9773
3  0.9501 -0.1514
4 -0.1032  0.4106


# ===================================
df1 = df[df['B']>0]  # cannot access df1.ix[2]

        A       B
0  1.7641  0.4002
1  0.9787  2.2409
4 -0.1032  0.4106

df2 = df[df['B']>0].reset_index(drop=True)  # df2.ix[2] works fine

        A       B
0  1.7641  0.4002
1  0.9787  2.2409
2 -0.1032  0.4106