Отличная альтернатива построению фрейма данных с применением многократных опорных точек - PullRequest
0 голосов
/ 16 ноября 2018

У меня есть фрейм данных, который содержит полный набор данных и соответствующую идентификационную информацию:

| sample_id | run_id | x | y | z |
| 0         | 1      | 1 | 2 | 3 |
| 0         | 2      | 4 | 5 | 6 |
| 1         | 1      | 1 | 2 | 3 |
| 1         | 2      | 7 | 8 | 9 |

Я хочу создать фрейм данных на основе результатов этого.Таким простым примером будет мой новый информационный фрейм, который должен содержать строку со средней информацией из выборочного прогона:

| sample_id | avg_x | avg_y | avg_z |
| 0         | 2.5   |  3.5  | 4.5   |
| 1         | 4     |  5    | 6     |

В данный момент я делаю это с циклом:

pivots = []
for i in samples:
    df_sample = df_samples[df_samples['sample_id'] == i]
    pivot = df_sample.pivot_table(index=index, columns='run_id', values=[x, y, z], aggfunc='mean')

    # Add some other features.  Involves creating more columns than existed in the initial df_samples dataframe
    pivots.append(pivot)

# create new dataframe
pd.concat(pivots)

Итак, мой первый вопрос: хочу ли я создать новый фрейм данных, который состоит из повторяющихся опорных точек другого фрейма данных.Есть ли способ сделать это сразу с помощью одной команды pivot вместо того, чтобы вызывать ее итеративно?Если есть, то это более производительно?

Мой второй вопрос касается более сложного случая.Если возможно выполнить несколько сводок одновременно, чтобы создать новый фрейм данных, когда новый фрейм данных также увеличит его измерения, то есть он может выглядеть следующим образом:

| s_id | avg_x | avg_y | avg_z | new_feature_1       |new_feature_2 |
| 0    | 2.5   |  3.5  | 4.5   | f(x11, x12, y11, y12, z11, z12) | g(avg_x1, avg_x2, avg_y1, avg_y2, avg_z1, avg_z2) |
| 1    | 4     |  5    | 6     | f(x21, x22, y21, y22, z21, z22) | g(avg_x1, avg_x2, avg_y1, avg_y2, avg_z1, avg_z2) |

Функции, по сути, выполняют отдельные операции с данными для sample_idдля создания новых функций.

В сторону: я ищу хороший ресурс по работе с большими фреймами данных Pandas и перманентному построению новых или выполнению запросов.Я почти всегда могу получить желаемый результат, используя панд.Мои реализации часто неэффективны и похожи на то, как это можно сделать на языке более низкого уровня, таком как c ++.Я хотел бы улучшить свои рабочие знания, и, возможно, это связано с некоторой теорией, которую я не знаю, в отношении таблиц данных, таблиц и т. Д. Рекомендация для ресурса будет хорошей.Обратите внимание, что это всего лишь дополнительная полезная информация, и одна только рекомендация не отвечает на вопрос, и любой ответ, который отвечает моим двум вышеупомянутым случаям использования, будет принят с рекомендацией для ресурса или без него.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...