2015-11-14 2 views
2

У меня есть панд dataframe, который выглядит примерно так:Панды добавить строки NA на основе индекса

  Product_1 Product_2 Product_3 Product_4 Product_5 
1492  1944   NaN   NaN   NaN   NaN   
1493  1944   NaN   NaN  16482  6185   
1494  1944  13208  20378  16482  6185   
1498  2146  13208  20378  16482  6694   
1503  2146  13973  20378  16552  6694 

Я желаю, чтобы ввести новые строки 1495, 1496, 1497 и 1499 так же, 1500, 1501 и 1502 с NaN во всех столбцах. Это, кажется, очень простая работа, просто интересно, есть ли встроенная функция pandas, чтобы делать такую ​​вещь.

ответ

2

Вы можете использовать .reindex:

>>> df.reindex(range(1492, 1504)) 
     Product_1 Product_2 Product_3 Product_4 Product_5 
1492  1944  NaN  NaN  NaN  NaN 
1493  1944  NaN  NaN  16482  6185 
1494  1944  13208  20378  16482  6185 
1495  NaN  NaN  NaN  NaN  NaN 
1496  NaN  NaN  NaN  NaN  NaN 
1497  NaN  NaN  NaN  NaN  NaN 
1498  2146  13208  20378  16482  6694 
1499  NaN  NaN  NaN  NaN  NaN 
1500  NaN  NaN  NaN  NaN  NaN 
1501  NaN  NaN  NaN  NaN  NaN 
1502  NaN  NaN  NaN  NaN  NaN 
1503  2146  13973  20378  16552  6694 
+0

Ой, блин, почему я не мог найти этот метод в документации, звучит как такой глупый вопрос прямо сейчас. Спасибо, тем не менее. –

+0

Вместо жесткого кодирования могут быть относительные значения 'df.reindex (диапазон (min (df.index), max (df.index)))' –

+0

@PierreLafortune это должно быть 'df.index.max() + 1' , потому что 'range' не включает правый конец –

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