Добавление нового столбца в фрейм данных pandas после группировки и переход на столбец

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

задача выполняется асинхронно, вы можете использовать AJAX для обновления страницы с последним статусом или просто использовать метаобновление внутри страницы для загрузки нового содержимого.

Здесь есть сервер очереди Django, который вы можете использовать:

http://code.google.com/p/django-queue-service/

Казалось бы, этот вопрос также был задан несколько раз до:

1
задан bazinga 18 January 2019 в 13:57
поделиться

2 ответа

Использование применяется для наложения скользящего среднего на каждую группу,

df['rolling_mean'] = df.groupby('Name').Values.apply(lambda x: x.rolling(3).mean())

    df  

  Name  Values  rolling_mean
0   A   1   NaN
1   A   2   NaN
2   A   3   2.000000
3   B   1   NaN
4   B   2   NaN
5   C   3   NaN
6   A   2   2.333333
7   A   6   3.666667
8   B   8   3.666667
9   B   3   4.333333
10  D   0   NaN
0
ответ дан Vaishali 18 January 2019 в 13:57
поделиться

Вот пример:

df = pd.DataFrame({'Name': {0: 'A',
  1: 'A',
  2: 'A',
  3: 'B',
  4: 'B',
  5: 'C',
  6: 'A',
  7: 'A',
  8: 'B',
  9: 'B',
  10: 'D'},
 'Values': {0: 1, 1: 2, 2: 3, 3: 1, 4: 2, 5: 3, 6: 2, 7: 6, 8: 8, 9: 3, 10: 0}})

df2 = pd.DataFrame({2: {('A', 0): np.nan,
  ('A', 1): np.nan,
  ('A', 2): 2.0,
  ('A', 6): 2.333333,
  ('A', 7): 3.666667,
  ('B', 3): np.nan,
  ('B', 4): np.nan,
  ('B', 8): 3.666667,
  ('B', 9): 4.3333330000000005,
  ('C', 5): np.nan,
  ('D', 10): np.nan}})

df.merge(df2.reset_index(level=0), left_index=True, right_index=True)


   Name  Values  0         2
0     A       1  A       NaN
1     A       2  A       NaN
2     A       3  A  2.000000
3     B       1  B       NaN
4     B       2  B       NaN
5     C       3  C       NaN
6     A       2  A  2.333333
7     A       6  A  3.666667
8     B       8  B  3.666667
9     B       3  B  4.333333
10    D       0  D       NaN

или join:

df.join(df2.reset_index(level=0))

   Name  Values  0         2
0     A       1  A       NaN
1     A       2  A       NaN
2     A       3  A  2.000000
3     B       1  B       NaN
4     B       2  B       NaN
5     C       3  C       NaN
6     A       2  A  2.333333
7     A       6  A  3.666667
8     B       8  B  3.666667
9     B       3  B  4.333333
10    D       0  D       NaN
0
ответ дан Chris 18 January 2019 в 13:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: