Как сгруппировать по значениям, но сохранить структуру данных? - PullRequest
3 голосов
/ 01 апреля 2019

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

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

Моя лучшая попытка в этом на данный момент: df_group = df.groupby('Group')['Sales'].sum() Однако это просто суммирует их все за неделю.

   Unit  Year  Week System_Type   Sales  Units_Sold
0  6111  2019     1  Component2  109578        3139
1  6111  2019     1  Component1   20792         639
2  6111  2019     2  Component2  115363        3425
3  6111  2019     2  Component1   25261         796
4  6111  2019     3  Component2  114913        3352

df['Group'] = np.where(((df['Unit'] == 6111) | (df['Unit'] == 6112) | (df['Unit'] == 6121)), 'control', 'test')
df.head()
    Unit    Year    Week    System_Type Sales   Units_Sold  Group
0   6111    2019    1   Component2  109578  3139    control
1   6111    2019    1   Component1  20792   639 control
2   6111    2019    2   Component2  115363  3425    control
3   6111    2019    2   Component1  25261   796 control
4   6111    2019    3   Component2  114913  3352    control

time = df.Week.unique()

df_cat = df[df.System_Type == 'Component1']

Я смотрю на это некоторое время, не имея возможности найти правильный путь. Я думаю, может быть, использовать переменную "время" в качестве нового индекса?

Любая помощь высоко ценится!

1 Ответ

0 голосов
/ 01 апреля 2019

поиграем:

import pandas as pd

df = pd.read_table('c:/4/AAA.txt', sep=',')
df.head(10)

df.groupby(['Week','Sales']).sum().sort_values('Sales')
df[(df['Sales']>30000)&(df['Year']==2019)].sort_values('Sales')
df[df['System_Type']=='Component2'].groupby('Sales').filter(lambda x: len(x)<2500).groupby('Sales').size().to_frame('size').sort_values('size')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...