2016-03-16 3 views
2

Я хотел бы сместить столбец в DataFrame Pandas, но я не смог найти способ сделать это, не теряя значения. (Этот пост очень похож на How to shift a column in Pandas DataFrame, но проверенный ответ не дает желаемого результата, и я не могу его прокомментировать). Кто-нибудь знает, как это сделать?Как сдвинуть столбец в Pandas DataFrame без потери значения

## x1 x2 
##0 206 214 
##1 226 234 
##2 245 253 
##3 265 272 
##4 283 291 

Желаемый выход:

## x1 x2 
##0 206 nan 
##1 226 214 
##2 245 234 
##3 265 253 
##4 283 271 
##5 nan 291 

ответ

4

Используйте loc, чтобы добавить новую пустую строку в DataFrame, а затем выполнить сдвиг.

df.loc[max(df.index)+1, :] = None 
df.x2 = df.x2.shift(1) 

В приведенном выше коде предполагается, что ваш индекс основан на целочисленном значении, которое является значением pandas по умолчанию. Если вы используете индекс, не основанный на целых числах, замените max(df.index)+1 тем, что вы хотите, чтобы новый последний индекс был.

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