2016-09-06 3 views
2

Я провел несколько испытаний, ничего не работает до сих пор. Я пробовал df.insert(0, "XYZ", 555), который, казалось, работал, пока не по каким-то причинам я не уверен.Pandas Вставьте строку над данными Index и Series в Dataframe

Я понимаю, что проблема заключается в том, что индекс не считается серией, и поэтому df.iloc [0] не позволяет вставлять данные непосредственно над столбцом Index.

Я также попытался вручную добавить в список индексов часть определения dataframe первого индекса со значением «XYZ» .. но ничего не работает.

Спасибо за вашу помощь

A B C D мои столбцы. диапазон (5) - мой индекс. Я пытаюсь получить это ниже, для произвольной строки, начиная с типа, а затем список strings..thanks

  A   B   C   D 

type 'string1' 'string2' 'string3' 'string4' 

0 
1 
2 
3 
4 

Если вы используете временные метки, индекс добавления строки и пользовательские одну строку со своим обычаем index выдаст ошибку: ValueError: Невозможно добавить интегральное значение к отметке времени без смещения. Я предполагаю, что это связано с различием в операндах, если я, например, вычитаю Integer из временной метки.? как я могу исправить это в общем виде? благодаря! -

+0

На самом деле из http://stackoverflow.com/questions/23339993/datetimeindex-offset-with я просто понял, что мы можем вычитать dt.timedelta (мин = 5) из ДФ .index.min(), как показано ниже , и он работает. Это происходит, когда ваш индекс находится в формате Timestamp. – uniXVanXcel

ответ

2

, если вы хотите, чтобы вставить строку перед тем первую строку, вы можете сделать это следующим образом:

данные:

In [57]: df 
Out[57]: 
    id var 
0 a 1 
1 a 2 
2 a 3 
3 b 5 
4 b 9 

добавив одну строку:

In [58]: df.loc[df.index.min() - 1] = ['z', -1] 

In [59]: df 
Out[59]: 
    id var 
0 a 1 
1 a 2 
2 a 3 
3 b 5 
4 b 9 
-1 z -1 

индекс сортировки:

In [60]: df = df.sort_index() 

In [61]: df 
Out[61]: 
    id var 
-1 z -1 
0 a 1 
1 a 2 
2 a 3 
3 b 5 
4 b 9 

необязательно сбросить индекс:

In [62]: df = df.reset_index(drop=True) 

In [63]: df 
Out[63]: 
    id var 
0 z -1 
1 a 1 
2 a 2 
3 a 3 
4 b 5 
5 b 9 
+0

привет спасибо. мой Индекс составлен из дат, и поэтому, когда я добавляю индекс, как вы показали, он вызывает ошибку: ValueError: Невозможно добавить интегральное значение к отметке времени без смещения. Я предполагаю, что это связано с различием в типе метки? как я могу исправить это в общем виде? благодаря! – uniXVanXcel

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