панды "пара мудрый конкат" - PullRequest
0 голосов
/ 28 января 2019

Я пытаюсь эффективно создать парное сравнение, используя Pandas Dataframe (python36)

В фрейме данных есть X столбцов, где в одном столбце есть метка: «set» Весь фрейм данных имеет множество «set», обозначенных[Set1, Set2 ....], каждый набор имеет 3-26 рядов.Каждая строка в данном наборе уникальна, обозначается как "подмножество" и может быть ["a", "b", "c" .... "z"].

[set, subset, var1, var2 ... varN]
[1, a, "a1","a2" ... "aN"]
[1, b, "b1","b2" ... "bN"]
[1, c, "c1","c2" ... "cN"]
[2, a, "a1","a2" ... "aN"]
[2, b, "b1","b2" ... "bN"]
 ....

Я хочусоздать фрейм данных, он имеет 2X количество столбцов, по существу для Set1, который имеет [a, b, c]

Set1,  columns for A,  columns for A
Set1,  columns for A,  columns for B
Set1,  columns for A,  columns for C
Set1,  columns for B,  columns for A
Set1,  columns for B,  columns for B,
Set1,  columns for B,  columns for C,
Set1,  columns for C,  columns for A,
Set1,  columns for C,  columns for B,
Set1,  columns for C,  columns for C,
Set2, ...

В настоящее время я делаю некоторую версию:

for name, group in dataframe.groupby('set'):
    group_copy = group.copy()
    # rename group columns to include v1_
    # rename group_copy columns to include v2_

    # MAGIC
    new_dataframe = pd.concat([group, group_copy])

    yield new_dataframe
    # and then concating a "large dataframe"

но это нелепо медленно.Мой фрейм данных имеет 300 тыс. Строк и 60 тыс. "Наборов".Есть ли способ сделать это действительно эффективным?

Правда, я делаю действительно большое количество строк.

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