我正在将一个文件读入可能包含无效(即 NaN)行的 Pandas DataFrame。这是顺序数据,所以我让 row_id+1 引用 row_id。当我使用 frame.dropna() 时,我得到了所需的结构,但索引标签保持原来分配的状态。如何将索引标签重新分配为 0 到 N-1,其中 N 是 dropna() 之后的行数?
问问题
13767 次
2 回答
15
使用pandas.DataFrame.reset_index()
,该选项drop=True
将满足您的需求。
In [14]: df = pd.DataFrame(np.random.randn(5,4))
In [15]: df.ix[::3] = np.nan
In [16]: df
Out[16]:
0 1 2 3
0 NaN NaN NaN NaN
1 1.895803 0.532464 1.879883 -1.802606
2 0.078928 0.053323 0.672579 -1.188414
3 NaN NaN NaN NaN
4 -0.766554 -0.419646 -0.606505 -0.162188
In [17]: df = df.dropna()
In [18]: df.reset_index(drop=True)
Out[18]:
0 1 2 3
0 1.895803 0.532464 1.879883 -1.802606
1 0.078928 0.053323 0.672579 -1.188414
2 -0.766554 -0.419646 -0.606505 -0.162188
于 2012-12-10T19:57:30.937 回答
2
除了接受的答案:
您还应该使用inplace=True
:
df.reset_index(drop=True, inplace=True)
于 2021-07-23T14:53:23.440 回答