pandas中DataFrame常见操作

##########################一个小功能,输入商品三级分类编号,输出相应的指标################
import warnings
import pandas as pd
warnings.filterwarnings('ignore')##忽略警告
item_third_cate_id = input("请输入需要查询的三级类目编号,多个请用英文分隔:")

def max_cut_min(group):  ##自定义一个函数,验证在agg里面使用自定义函数的可能性
    return group.max() - group.min()

def cate_list(item_third_cate_id):
    list_cate = item_third_cate_id.split(',')#将输入的类目编号转为列表
    list_cate = list(map(int,list_cate))#使用map方式将list中字符型转为整型

    file_path = 'sku_test_01.csv'#文件地址
    file_data = pd.read_csv(file_path,encoding=  'gb18030')#将数据读取至dataframe中

    file_data = file_data[file_data['商品三级分类编号'].isin(list_cate)]#使用isin函数筛选出输入的商品三级编号
    # uniq_cate = file_data.drop_duplicates(subset=['商品三级分类编号'],keep='first')  #在dataframe中按照某一列进行去重  drop_duplicates(subset['A','B'],keep = 'first / last
    # print(uniq_cate['商品三级分类编号'])  #对一列进行去重
    # print(file_data['商品三级分类编号'].value_counts())  # 根据某一列进行group_by
    group_by_column = file_data.groupby(['商品三级分类编号','商品三级分类名称'])  #需要分组的列
    group_by1 = group_by_column['商品二级分类编号'].agg([('数据行数','count'),('求和','sum'),('去重计数','nunique')]) #可以对具体的某几列进行聚合计算,但是缺点是无法针对某一列进行具体的一类计算,优点是可以命名列名
    # print(group_by_column.describe()) ##一些基本的描述性输出,如最大最小中位数平均数分位数
    group_by2 = group_by_column.agg({'有效订单金额':['sum'],'SKU编码':['nunique'],'净加购件数':[max_cut_min]})  ##可以灵活对某一列进行聚合操作,但是缺点需要重命名
    # group_by2 = group_by2.rename({'商品三级分类编号':'商品三级分类'})  #对列名进行重命名
    group_by2.columns = [i[0] + "_" + i[1] for i in group_by2.columns]   ##遍历列名批量修改列名
    # print(group_by2.columns.values.tolist())#将列名输出为一个list
    print(group_by2)
    
if __name__ =="__main__":
    cate_list(item_third_cate_id)
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值