pandas 将一行拆分为多行,将多行合并为一行
创始人
2024-03-12 20:41:00
0

需求描述

  • 在今天的数据需求,现在要统计各个场景下的类目种类数,并列出对应都有哪些类目。
  •  现在面临的问题是:每个客户的应用场景不同,购买的类目也有多种。

🎞🎞🎞🎞🎞🎞🎞🎞🎞🎞🎞🎞🎞🎞🎞🎞🎞🎞🎞🎞🎞🎞🎞🎞🎞🎞🎞🎞🎞🎞🎞🎞🎞🎞🎞🎞🎞

数据形式

数据处理前:

 最终统计的结果:

拆开来看,分两大块一部分是统计最适场景的类目数、一部分是统计最适场景的类目组合 

解决思路:

1、首先将原始数据中用到的列提取出来,一行拆分为多行

2、对原始数据进行去重处理,得到最新的数据

  • 统计最适场景的类目数

       使用pandas中的pivot_table()。

  • 统计最适场景的类目组合

        将各个场景下的,类目进行拼接。

具体实现代码:

1、首先将原始数据中用到的列提取出来,一行拆分为多行

data2_1 =data2[['类目','最适场景']]
data2_1['类目1'] = data2_1['类目']
data2_1 = data2_1.drop(['类目1'], axis=1).join(data2_1['类目1'].str.split(',', expand=True).stack().reset_index(level=1, drop=True).rename('类目_new'))
print(data2_1.head())

2、便于后面的统计,对原始数据进行去重处理,得到最新的数据

data2_1 =data2_1[['最适场景','类目_new']]
data2_1.drop_duplicates(inplace =True) #对数据进行去重
  • 统计最适场景的类目数

kind_1 =pd.pivot_table(data2_1,values =['类目_new'],index =['最适场景'],aggfunc ={ '类目_new':lambda x :len(x.dropna().unique())},fill_value =0).reset_index(drop=False).rename(columns ={'类目_new':'类目数'})
print(kind_1.head())

  • 统计最适场景的类目组合
# 创建函数,用于聚合场景购买品类的集合
def fun_join(x):return ','.join(x.values)kind_2 =data2_1.groupby(by = '最适场景').agg(fun_join).reset_index().rename(columns ={'类目_new':'类目组合'}) #获得最近一次购买产品的组合kind =pd.merge(kind_1,kind_2,on =['最适场景'],how ='inner')
print(kind.head())

 至此,已经完成了这个数据需求。

总结一下:

在这个数据需求里面最重要的两点,一个是数据的拆分;一个是数据的合并。

相关内容

热门资讯

保存时出现了1个错误,导致这篇... 当保存文章时出现错误时,可以通过以下步骤解决问题:查看错误信息:查看错误提示信息可以帮助我们了解具体...
汇川伺服电机位置控制模式参数配... 1. 基本控制参数设置 1)设置位置控制模式   2)绝对值位置线性模...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
表格中数据未显示 当表格中的数据未显示时,可能是由于以下几个原因导致的:HTML代码问题:检查表格的HTML代码是否正...
本地主机上的图像未显示 问题描述:在本地主机上显示图像时,图像未能正常显示。解决方法:以下是一些可能的解决方法,具体取决于问...
表格列调整大小出现问题 问题描述:表格列调整大小出现问题,无法正常调整列宽。解决方法:检查表格的布局方式是否正确。确保表格使...
不一致的条件格式 要解决不一致的条件格式问题,可以按照以下步骤进行:确定条件格式的规则:首先,需要明确条件格式的规则是...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...