将pandas DataFrame的索引增加一

时间:2015-05-15 20:33:19

标签: python pandas

我希望我的数据框以索引1而不是0开头。但不知怎的,我没有得到它:

In[1]: df = pd.DataFrame([[4,7],[10,11],[7,2]],columns=['one', 'two'])
In[2]: df
Out[2]: 
   one  two
0    4    7
1   10   11
2    7    2
In[3]: df.reindex(range(1,len(df)+1))
Out[3]: 
   one  two
1   10   11
2    7    2
3  NaN  NaN

我的第一排去了哪里?我对reindex()的错误是什么?

2 个答案:

答案 0 :(得分:6)

重建索引不会重新分配索引值并保留您可以直接指定的顺序:

In [25]:

df.index = range(1,len(df)+1)
df
Out[25]:
   one  two
1    4    7
2   10   11
3    7    2

docs表明您正在将数据符合新索引,这将导致NaN值不存在,因此您丢失了一行,这就是fillna的原因reindex的参数。

答案 1 :(得分:3)

要将索引增加为1,您只需修改索引,df.index += 1

完整示例:

In [1]: import pandas as pd

In [2]: df = pd.DataFrame([[4,7],[10,11],[7,2]],columns=['one', 'two'])

In [3]: df
Out[3]:
   one  two
0    4    7
1   10   11
2    7    2

In [4]: df.index += 1

In [5]: df
Out[5]:
   one  two
1    4    7
2   10   11
3    7    2