简化版 先求每个商品品类中亏损的最大的 写入新的表中 ;求亏损前三的;
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')
结果