从字典中的数据帧中获取平均值

2024-04-26 02:43:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我有下面的问题来获取字典中数据帧的平均值。字典部分把我搞糊涂了,想知道是否有人能帮我指导/教我这方面的知识

问题-获取字典ans7中每个Manager的平均值SalesDif,该字典以Manager为键,平均结果为值

    Store   TimeStamp   Manager Projected_Sales Sales   DT TTL  SalesDif
0   4007    2017-02-04 07:10:00 Monica H    281.0   296.0   192 15.0
1   4007    2017-02-04 08:04:00 David H 670.0   347.0   111 323.0
2   4007    2017-02-03 18:41:00 David H 784.0   649.0   143 135.0
3   4007    2017-02-04 10:06:00 David H 852.0   750.0   158 102.0
4   4007    2017-02-05 10:57:00 Zoey D  54.0    108.0   104 54.0
... ... ... ... ... ... ... ...
13173   16250   2017-09-25 13:22:00 Carmella R  669.0   758.0   238 89.0

Tags: 数据store字典dtmanagermonicatimestamp平均值
1条回答
网友
1楼 · 发布于 2024-04-26 02:43:10

您的数据框可供其他人轻松重现您的问题: 可以通过处理数据帧(df.to_clipboard())然后使用:dict_df=pd.read_clipboard().to_dict()轻松创建

df = pd.DataFrame.from_dict({'Store': {0: '2017-02-04',
  1: '2017-02-04',
  2: '2017-02-03',
  3: '2017-02-04',
  4: '2017-02-05'},
 'TimeStamp': {0: '07:10:00',
  1: '08:04:00',
  2: '18:41:00',
  3: '10:06:00',
  4: '10:57:00'},
 'Manager': {0: 'Monica', 1: 'David', 2: 'David', 3: 'David', 4: 'Zoey'},
 'Projected_Sales': {0: 'H', 1: 'H', 2: 'H', 3: 'H', 4: 'D'},
 'Sales': {0: 281.0, 1: 670.0, 2: 784.0, 3: 852.0, 4: 54.0},
 'DT': {0: 296.0, 1: 347.0, 2: 649.0, 3: 750.0, 4: 108.0},
 'TTL': {0: 192, 1: 111, 2: 143, 3: 158, 4: 104},
 'SalesDif': {0: 15.0, 1: 323.0, 2: 135.0, 3: 102.0, 4: 54.0}})

每个经理的平均销售dif字典:

dict_manager_sales = df[['Manager', 'SalesDif']].groupby(['Manager'])['SalesDif'].mean().to_dict()

首先,使用所需的列对数据帧进行切片:

df[['Manager', 'SalesDif']]

第二,对值进行分组,并告诉groupby使用哪种方法以及哪些列:

.groupby(['Manager'])['SalesDif'].mean()

第三,从dataframe创建一个字典,df的索引将是键,列(仅允许1个)将是值:

.to_dict()

相关问题 更多 >