我有一个数据集,其中包含每周销售一个带有销售和单位的系统的单位(商店)列表。我将它们分组为一个测试和对照组,作为新列。
我现在想要做的是在数据集中使用这些新组,因为我想在所有星期中将它们相互绘制。
到目前为止,我最好的镜头是:
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']
我已经看了一段时间了,无法用谷歌找到正确的解决方案。我在想也许将“时间”变量用作新索引?
任何帮助,不胜感激!
答案 0 :(得分:0)
让我们玩吧:
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')