我希望我的数据框以索引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()的错误是什么?
答案 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