2017-01-16 2 views
-1

Я хочу проанализировать данные из моделирования. Данные организованы по структуре модели:Иерархические данные pandas

I.e. Модель имеет узлы. Каждый узел имеет положение и скорость. Каждая позиция имеет компоненты x, y и z. Каждый компонент имеет значение для каждого временного шага моделирования.

организовать данные, которые я начал писать объект, который хранит все значения, так что я могу добраться до временного ряда компонента, вызвав что-то вроде:

values = simulation.nodes(13).position.x(:) 

Затем я услышал о панде и как это предоставляет некоторые полезные инструменты сортировки и анализа. Могу ли я использовать панды для выполнения того, что я хочу сделать? Или я должен написать свой собственный объект, используя ndarrays?

Спасибо за ваши ответы.

Бен

+0

Pandas - это модуль сортировки данных. Вы должны использовать его, если хотите автоматически сортировать данные перед тем, как поместить их в модель. Хотя, основываясь на том, что я готов от вашего вопроса, я бы сказал, что нет, нет, но я могу ошибаться в том, что вы пытаетесь передать. –

+0

@PrestonHager Нет, Pandas не является модулем сортировки данных. Это позволяет вам сортировать данные, если вы хотите, и предлагает ряд операций, которые лучше работают на отсортированных данных, но сортировка не является его основной целью. Он был разработан для анализа временных рядов, но приобрел множество общих статистических методов. –

+0

Хорошо, я не очень хорош в пандах. И еще не исследовали его на большой глубине. Спасибо @DavidZ. –

ответ

0

Да, панды может делать то, что вы хотите. Я бы рекомендовал использовать трехмерную структуру данных Panel. Если мы рассмотрим панель, которая будет разделена на строки, столбцы и слои, то каждый уровень может соответствовать узлу, каждый столбец может соответствовать измерению (так что у вас будет шесть столбцов, три для компонентов позиции и еще три для компонентов скорости) и каждой строки. У метода Panel есть методы, которые упрощают сортировку данных по любым критериям, чтобы извлечь части, соответствующие определенным временам или временным диапазонам или определенным узлам, для повторной выборки, интерполяции и обработки других данных и даже для разделения позиции данные из данных скорости. Вероятно, вам будет полезно использовать столбец MultiIndex, который позволит вам иметь многоуровневые метки столбцов, которые объединяются в группы - таким образом, у вас может быть группа для позиции и другая группа для скорости.

+0

Благодарим вас за ответ. Было бы хорошей идеей создать пользовательский тип, то есть «вектор», и сохранить в нем три реала, а затем положить много векторов в панель? – Benjamin

+0

Нет, наверное, нет. Большая часть удобства использования панелей исчезает, когда вы помещаете в них произвольные объекты, а не числа. Это зависит от того, что вы хотели бы сделать с этими векторами, но вам, вероятно, будет лучше просто выполнять соответствующие математические операции с Panel. Это может быть существенным для последующего вопроса, после того как вы попробовали его самостоятельно. –

+0

спасибо. Я думаю, теперь у меня есть лучшее понимание того, что такое панды. – Benjamin

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