pandas dataframe 一行变多行 (query pv统计term pv)
关键字:
- 用jieba切词
- 用expand 一列变多列
- 用stack 列转行
- 用group by + aggr 相同term的pv求和
上效果:
query pv
今日新鲜事
今日头条
北京天气
上海天气
term pv
上海
今日
北京
天气
头条
新鲜事
上代码:
import pandas as pd
import numpy as np
import jieba df = pd.DataFrame({'query':['今日新鲜事','今日头条','北京天气','上海天气'],
'pv':[10000,100,2000,3000]}) #先用jieba切词
df['query'] = df['query'].apply(lambda x: ','.join(jieba.cut(x))) df = (df.set_index(['pv'])['query']
.str.split(',', expand=True) # query切分并expand成多列
.stack() # 列转行
.reset_index(level=1, drop=True) # 删除列对齐后的空值
.reset_index(name='term')
.groupby('term').agg({'pv': np.sum}) # pv按term求和
.reset_index())
pandas dataframe 一行变多行 (query pv统计term pv)的更多相关文章
- HNU13028Attacking rooks (二分匹配,一行变多行,一列变多列)
Attacking rooks Time Limit: 20000ms, Special Time Limit:50000ms, Memory Limit:65536KB Total submit u ...
- hive一行变多行及多行变一行
hive一行变多行及多行变一行 场景 name alias zhaoqiansun abc def ghi 处理数据时需要将上表处理成为下面的形式: name alias zhaoqiansun ab ...
- SQL语句 拆分某些字段,一行变多行
原文链接:http://bbs.csdn.net/topics/310219852 ------------------------------------- -- Author : liangCK ...
- pandas DataFrame行或列的删除方法
pandas DataFrame的增删查改总结系列文章: pandas DaFrame的创建方法 pandas DataFrame的查询方法 pandas DataFrame行或列的删除方法 pand ...
- pandas.DataFrame的pivot()和unstack()实现行转列
示例: 有如下表需要进行行转列: 代码如下: # -*- coding:utf-8 -*- import pandas as pd import MySQLdb from warnings impor ...
- 如何迭代pandas dataframe的行
from:https://blog.csdn.net/tanzuozhev/article/details/76713387 How to iterate over rows in a DataFra ...
- [译]如何根据条件从pandas DataFrame中删除不需要的行?
问题来源:https://stackoverflow.com/questions/13851535/how-to-delete-rows-from-a-pandas-dataframe-based-o ...
- Pandas DataFrame 数据选取和过滤
This would allow chaining operations like: pd.read_csv('imdb.txt') .sort(columns='year') .filter(lam ...
- pandas数据处理基础——筛选指定行或者指定列的数据
pandas主要的两个数据结构是:series(相当于一行或一列数据机构)和DataFrame(相当于多行多列的一个表格数据机构). 本文为了方便理解会与excel或者sql操作行或列来进行联想类比 ...
随机推荐
- for循环延伸
经典面试题解析: for(var i = 1 ; i < 5 ; i++){ console.log(i) } //1 2 3 4 ------------------------------- ...
- [好好学习]在VMware中安装Oracle Enterprise Linux (v5.7) - (4/5)
- Oracle Grid,ASM,Database on Redhat 7.5
目录 Oracle安装包 Oracle官方文档 Blog Oracle Grid Installation Process 用户.组.目录 Oracleasm 创建 ASM 磁盘 Database S ...
- 了解Greenplum (2)
一.目的 1. 理解Greenplum中的数据分布策略(random 和 distribution),分析不同分布策略的优劣:2. 理解查询执行中的数据广播和数据重分布,分析在何种情况下选择哪种策略, ...
- css定位选择兄弟元素,nth-of-type
<span class="input-group-btn" the-id="num-change"> <button class=" ...
- yum软件包管理
一.yum常用命令 #yum -y install [软件包名] //安装 #yum erase [软件包名] //卸载 #yum clean all //清除缓存 #yum makecache // ...
- Vue自定义指令实现input限制输入正整数
directive.js import Vue from 'vue' export default () => { Vue.directive('Int', { inserted: functi ...
- 37行代码构建无状态组件通信工具-让恼人的Vuex和Redux滚蛋吧!
状态管理的现状 很多前端开发者认为,Vuex和Redux是用来解决组件间状态通信问题的,所以大部分人仅仅是用于达到状态共享的目的.但是通常Redux是用于解决工程性问题的,用于分离业务与视图,让结构更 ...
- Spring---数据访问
1.Spring Data概述 1.1.Spring Data 项目 是 Spring用来解决数据访问问题 的一站式解决方案,包含了 大量关系型数据库.非关系型数据库 的 数据访问解决方案 ...
- Mac xlwings aem.aemsend.EventError: Command failed: The user has declined permission. (-1743)
aem.aemsend.EventError: Command failed: The user has declined permission. (-1743) 关于mac pycharm 使用xl ...