我有一个数据集,其中包含销售系统的单位(商店)列表,其中包含每周的销售额和单位。我已将它们分组为测试组和对照组作为新列。
我现在想做的是在数据集中使用这些新组,因为我想在所有周内将它们相互绘制。
到目前为止,我在这方面的最佳表现是:
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']
我已经研究了一段时间,但无法通过谷歌找到正确的解决方案。我在想也许可以使用“时间”变量作为新索引?
非常感谢任何帮助!
最佳答案
来玩吧
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')
关于python - 如何按值分组但保持数据结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55457194/