Python-расщепление dataframe - PullRequest
       0

Python-расщепление dataframe

0 голосов
/ 25 сентября 2018

Моя цель - сгруппировать фрейм данных на основе column['quantity'] в следующих фреймах данных

мой фрейм данных:

df
  ordercode             quantity
PMC21-AA1U1FBWBJA           1
PMP23-GR1M1FB3CJ            1
PMC11-AA1U1FJWWJA           1
PMC11-AA1U1FBWWJA+I7        2
PMC11-AA1U1FJWWJA           3
PMC11-AA1L1FJWWJA           3

 df1:
  ordercode             quantity
PMC21-AA1U1FBWBJA           1
PMP23-GR1M1FB3CJ            1
PMC11-AA1U1FJWWJA           1
PMC11-AA1U1FBWWJA+I7        2

df2
  ordercode             quantity

Мой код:

df = pd.DataFrame(np.concatenate(df.apply(lambda x: [x[0]] * x[1], 1).as_matrix()), 
          columns=['ordercode'])
df['quantity'] = 1
df['group'] = sorted(list(range(0, len(df) // 3, 1)) * 4)[0:len(df)]
df = df.groupby(['group', 'ordercode']).sum()
print(df)

С помощью приведенной выше кодировки я получил мой результат в df, как показано ниже.

  Group    ordercode                quantity
    0       PMC21-AA1U1FBWBJA           1
            PMP23-GR1M1FB3CJ            1
             PMC11-AA1U1FJWWJA          1
            PMC11-AA1U1FBWWJA+I7        1
    1      PMC11-AA1U1FBWWJA+I7         1
            PMC11-AA1U1FJWWJA           3
    2      PMC11-AA1L1FJWWJA            3

В group0 & group1 суммарные значения (1 + 1 + 1 + 1 = 4) (1 + 3 = 4) (т.е. сохраняя максимальное значение количества как 4).В group2 мы можем видеть, что нет добавляемых значений, поэтому группа формируется с помощью остатка (здесь это 3). В group0 & group1 мы можем видеть, что значение PMC11-AA1U1FBWWJA+I7 разбивается.

Нет проблем в этом.

В df1 & df2 ошибка показа значения.

в df1:

value error: length of values does not match length of index
 raise Value error('length of value does not match length of index')

в df2:

 value error:need at least one array to concatenate.

Я мог понять, что мой df2 пуст и не имеет index.Я использовал pd.Series, но опять та же ошибка.

как решить эту проблему?

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