Машинное обучение в трейдинге: теория, модели, практика и алготорговля - страница 3449

 
mytarmailS #:
Хмм.. Интересно и не понятно

Ну там так индексация работает. Потому что датафрейм - это массив серий.

Если задать одну колонку, то он вернет серию. Если диапазон, то датафрейм, даже если в диапазоне только одна строка.

удобненько.
 
Maxim Dmitrievsky #:

может вопрос поставлен неправильно, что значит объединить по 0 строке?

еще есть ф-я merge

Я начал топик таким, согласен, не очень понятным вопросом (так как в другом топике он уже начал тупить и перевирать логику).

Почему строки вместо столбцов:
row = pd.concat([Input_Data.iloc[Stroka], Input_Info.iloc[Stroka]], axis=1)

Но он всё верно понял - что я хочу от кода

В коде, который вы предоставили, строки объединяются вместе с данными из Input_Data и Input_Info по горизонтали (ось 1),
 а не по вертикали (ось 0), как это обычно бывает при использовании concat.

Параметр axis в функции concat позволяет указывать, по какой оси выполнять объединение данных. Когда axis=1,
 объединение происходит по горизонтали, то есть данные сливаются по столбцам, а когда axis=0,
 это означает объединение по вертикали, или по строкам.

Таким образом, в вашем коде строки (Stroka) объединяются с данными из Input_Data и Input_Info вдоль оси 1,
 что приводит к тому, что данные соединяются в столбцы.

Ну  далее, я сказал, что не соединятся в столбцы, как это он правильно понял, он предположил причины, а я попросил код для проверки - в котором должно произойти соединение, и он выдал то, что я показал ранее.

Maxim Dmitrievsky #:

 Первые строки так можно

В моём случае тогда он должен был предложить так?

row = pd.concat([Input_Data.iloc[Stroka:Stroka+1], Input_Info.iloc[Stroka:Stroka+1]], axis=1)
Maxim Dmitrievsky #:

Понял. Потому что при таком индексировании как у вас возвращаются объекты pd.Series, а не pd.Dataframe

выше показал как правильно

Maxim Dmitrievsky #:

с нулевой по первую, то есть одна

если одно значение задать, он другой объект вернет, с другим индексированием

можно с нулевой по вторую, и так далее

Вы это в документации нашли?

В общем, я от него получил такой код:

row = pd.concat([Input_Data.iloc[[Stroka]], Input_Info.iloc[[Stroka]]], axis=1)

И он работает - а вот причину такого синтаксиса он мне не пояснил!

 
mytarmailS #:
Хмм..  а почему индекс 0:1 если строка одна? 

А там такая дурь, что диапазон часто указывают не по включительно число, т.е. до такого то числа, не включительно. Я как раз про это забыл, когда мучился с этой темой.

А в R вот индексация с 1, на сколько я понял...
 
Aleksey Vyazmikin #:

Я начал топик таким, согласен, не очень понятным вопросом (так как в другом топике он уже начал тупить и перевирать логику).

Но он всё верно понял - что я хочу от кода

Ну  далее, я сказал, что не соединятся в столбцы, как это он правильно понял, он предположил причины, а я попросил код для проверки - в котором должно произойти соединение, и он выдал то, что я показал ранее.

В моём случае тогда он должен был предложить так?

Вы это в документации нашли?

В общем, я от него получил такой код:

И он работает - а вот причину такого синтаксиса он мне не пояснил!

Да, так тоже правильно. Причина в том, что если вы хотите получить объект датафрейм, то должны передавать список индексов, а не один индекс. Иначе он вернет одну серию, которые объединятся не так как вы ожидаете, потому что у них инвертированное индексирование.
 
Maxim Dmitrievsky #:
Да, так тоже правильно. Причина в том, что если вы хотите получить объект датаырейм, то должны передавать список индексов, а не один индекс.

Почему квадратные скобки сделали как бы список из переменной - это не пойму.

 
Aleksey Vyazmikin #:

Почему квадратные скобки сделали как бы список из переменной - это не пойму.

Потому что вы создали список и поместили в него 1 объект?)

Квадратные скобки в питоне означают список. Везде, где их видите - значит имеете дело со списком объектов.
 
Maxim Dmitrievsky #:
Потому что вы создали список и поместили в него 1 объект?)

Квадратные скобки в питоне означают список

Вот это меня и раздражает - переменные меняют свои типы - трансформеры млин :)

 
Aleksey Vyazmikin #:

Вот это меня и раздражает - переменные меняют свои типы - трансформеры млин :)

Динамическая типизация называется 
А меня бесит все время прописывать типы, лишняя писанина

Вы можете всегда узнать тип объекта напечатав type(object), если запутались 
 
Maxim Dmitrievsky #:
Динамическая типизация называется 

После такого тяжело было бы переходить на Си подобный язык.

Спасибо за пояснение, человек всё же полезней машины в вопросе обучения!

 
Maxim Dmitrievsky #:
Вы можете всегда узнать тип объекта напечатав type(object), если запутались 

Ага, хоть это они сделали - часто пользуюсь.

Причина обращения: