2017-02-03 12 views
5

coming deprecation of df.ix[...]Как заменить df.ix на df.loc или df.iloc?

Как заменить .ix в этом фрагменте кода?

df_1 = df.ix[:,  :datetime.time(16, 50)] 
df_2 = df.ix[:, datetime.time(17, 0) :  ] 
df_3 = df2.shift(periods = 1) 
df_4 = pd.concat([df3, df1], axis = 1) 

Для справки, this is some background на этот кусок кода

+0

@MaxU дайте мне знать, если связь достаточно. Если нет, я могу улучшить вопрос с помощью более общего фиктивного df. – hernanavella

+0

yep, достаточно – MaxU

+2

hmm, 'df.loc [:,: datetime.time (1, 00)]' и 'df.loc [:, datetime.time (22, 00):]' отлично работает для меня (Pandas 0.19.2) – MaxU

ответ

2

Замена ix в вашей базе кода представляет собой процесс 4 шага следующим образом:

  1. тратить время разработчиков на модернизацию серийную версию от pandas до 0,199.x, который совместим с ix и выставляет lociloc замену, как вы их использовали бы сейчас. Воздействие в вашем коде adapations для других частей вашего кода базы панд, которые будут иметь критические изменения в связи с другими изменениями в панде 0,19 против 0,18

  2. Установить вам новую квалифицированную версию производства

  3. Перенести ix в вашем базовый код

  4. Deploy производства