简化版 先求每个商品品类中亏损的最大的 写入新的表中 ;求亏损前三的;

import pandas as pd
# 读取原始表  简化为仅求亏损最大的
# 路径需要双斜杠
data = pd.read_excel('D:\\work\\2\\配料统计表.xlsx',sheet_name='Sheet1')
# 对数据做处理
#第一步  找到亏损类和涨出类   如果金额大于0 是亏损;否则是涨出
data_loss= data[data['差异金额']>0]
#第二步  根据品类再次分组 根据差异金额做分组groupby
# 找到每个品类中亏损最大的 调用max方法需要.max() 小括号不能丢
groupbyed_data_loss = data_loss.groupby('品类名称').max()
# 将新数据写入新的表
groupbyed_data_loss.to_excel('D:\\work\\2\\配料统计表max1.xlsx',sheet_name='Sheet1')

最初的表

 处理后将结果写入的表

------------------------------------------

import pandas as pd
# 读取原始表  简化为仅求亏损前三的
# 路径需要双斜杠
data = pd.read_excel('D:\\work\\2\\配料统计表.xlsx',sheet_name='Sheet1')
# 对数据做处理
#第一步  找到亏损类和涨出类   如果金额大于0 是亏损;否则是涨出
data_loss= data[data['差异金额']>0]
#第二步  根据品类再次分组 根据差异金额做分组groupby
# 找到每个品类中亏损前三的 需要.head(3) 小括号不能丢
groupbyed_data_loss = data_loss.groupby('品类名称').head(3)
# 将新数据写入新的表
groupbyed_data_loss.to_excel('D:\\work\\2\\配料统计表head33.xlsx',sheet_name='Sheet1')

结果写入新表

 -------------------------------------------------------------------------------------------------------------------------------------

import pandas as pd
# 读取原始表  简化为仅求涨出前三的
# 路径需要双斜杠
data = pd.read_excel('D:\\work\\2\\配料统计表.xlsx',sheet_name='Sheet1')
# 对数据做处理
#第一步  找到亏损类和涨出类   如果金额大于0 是亏损;否则是涨出
data_loss= data[data['差异金额']<0]
#第二步  根据品类再次分组 根据差异金额做分组groupby
# 找到每个品类中亏损前三的 调用需要.head(3) 小括号不能丢
groupbyed_data_loss = data_loss.groupby('品类名称').head(3)
# 将新数据写入新的表
groupbyed_data_loss.to_excel('D:\\work\\2\\配料统计表head3_zhang.xlsx',sheet_name='Sheet1')

涨出前三的的结果  仅需要更改之前的大于0 为小于0

 -----------------------------------------------------------------------------------------------------------------------------------------------------------------

 

import pandas as pd
# 读取原始表  简化为仅求涨出和亏损前三的
# 路径需要双斜杠
data = pd.read_excel('D:\\work\\2\\配料统计表.xlsx',sheet_name='Sheet1')
# 对数据做处理
# 亏损的
#第一步  找到亏损类和涨出类   如果金额大于0 是亏损;否则是涨出
data_loss= data[data['差异金额']>0]
#第二步  根据品类再次分组 根据差异金额做分组groupby
# 找到每个品类中亏损前三的 调用需要.head(3) 小括号不能丢
groupbyed_data_loss = data_loss.groupby('品类名称').head(3)
# 盈余的
#第一步  金额小于0 涨出
data_gain= data[data['差异金额']<0]
#第二步  根据品类再次分组 根据差异金额做分组groupby
# 找到每个品类中亏损前三的 调用需要.head(3) 小括号不能丢
groupbyed_data_gain = data_gain.groupby('品类名称').head(3)
# 合并涨出和亏损的数据  必须加上([数据1,数据2])
data_all=pd.concat([groupbyed_data_loss,groupbyed_data_gain])
# 将新数据写入新的表
data_all.to_excel('D:\\work\\2\\配料统计表all.xlsx',sheet_name='Sheet1')

结果

 

posted @ 2024-12-12 11:59  胖豆芽  阅读(1)  评论(0编辑  收藏  举报