2015-05-15 2 views
2

Я хотел бы, чтобы мой dataframe начать с индексом 1 вместо 0. Но почему-то я не получаю это:Увеличение индекса панд DataFrame одним

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()?

ответ

3

переиндексации не переназначать значения индекса и сохранить порядок в том, что вы можете назначить непосредственно:

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 param для reindex.

2

Чтобы увеличить индекс с помощью 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 
+1

Примечание: 'df.index + = 1' приводит к' 'IntXXIndex' тогда df.index = df.index + 1' приводит к' RangeIndex'. – Dataman

Смежные вопросы