关键字:

  • 用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)的更多相关文章

  1. HNU13028Attacking rooks (二分匹配,一行变多行,一列变多列)

    Attacking rooks Time Limit: 20000ms, Special Time Limit:50000ms, Memory Limit:65536KB Total submit u ...

  2. hive一行变多行及多行变一行

    hive一行变多行及多行变一行 场景 name alias zhaoqiansun abc def ghi 处理数据时需要将上表处理成为下面的形式: name alias zhaoqiansun ab ...

  3. SQL语句 拆分某些字段,一行变多行

    原文链接:http://bbs.csdn.net/topics/310219852 ------------------------------------- -- Author : liangCK ...

  4. pandas DataFrame行或列的删除方法

    pandas DataFrame的增删查改总结系列文章: pandas DaFrame的创建方法 pandas DataFrame的查询方法 pandas DataFrame行或列的删除方法 pand ...

  5. pandas.DataFrame的pivot()和unstack()实现行转列

    示例: 有如下表需要进行行转列: 代码如下: # -*- coding:utf-8 -*- import pandas as pd import MySQLdb from warnings impor ...

  6. 如何迭代pandas dataframe的行

    from:https://blog.csdn.net/tanzuozhev/article/details/76713387 How to iterate over rows in a DataFra ...

  7. [译]如何根据条件从pandas DataFrame中删除不需要的行?

    问题来源:https://stackoverflow.com/questions/13851535/how-to-delete-rows-from-a-pandas-dataframe-based-o ...

  8. Pandas DataFrame 数据选取和过滤

    This would allow chaining operations like: pd.read_csv('imdb.txt') .sort(columns='year') .filter(lam ...

  9. pandas数据处理基础——筛选指定行或者指定列的数据

    pandas主要的两个数据结构是:series(相当于一行或一列数据机构)和DataFrame(相当于多行多列的一个表格数据机构). 本文为了方便理解会与excel或者sql操作行或列来进行联想类比 ...

随机推荐

  1. docker pull使用 代理

    [root@fdfs- ~]# cat /usr/lib/systemd/system/docker.service [Unit] Description=Docker Application Con ...

  2. .net 关于路径的总结

    原文:https://www.cnblogs.com/hehehehehe/p/6196155.html https://www.cnblogs.com/yugongmengjiutian/artic ...

  3. 17、前端知识点--Vue中ref的使用

    methods里面的方法,需要手动触发才会执行. 如果想让页面一上来就执行的话,就需要写在mounted这个钩子函数中. <body> <div id="app" ...

  4. Latex--入门系列一

    Latex 专业的参考 tex对于论文写作或者其他的一些需要排版的写作来说,还是非常有意义的.我在网上看到这个对于Latex的入门介绍还是比较全面的,Arbitrary reference .所以将会 ...

  5. 使用docxtemplater来处理word模板

    工作中遇到需要根据不同数据来处理模板word的情况,网上搜索了一番之后,找到了一个叫做docxtemplater的库,使用起来非常便携,也十分满足此次的需求. 这次就来记录一下docxtemplate ...

  6. mybatis resultMap之collection聚集两种实现方式

    最近做得项目用到了MyBatis处理一对多的映射关系,下面的两个方法中用到了集合的嵌套查询方法,下面仔细学习一下这两种方式 聚集元素用来处理"一对多"的关系.需要指定映射的Java ...

  7. C# List<object> 按特定字段排序

    using System; using System.Collections; using System.Collections.Generic; using System.Linq; using S ...

  8. 比较两个Sql数据库是否相同

    1.打开VS20122.SQL→架构比较→新建架构比较3.在源和目标上分别填上两个待比较的数据库的信息4.点击比较,不一会儿,系统就会列出两个数据库的差异了.

  9. Vue.js 技术揭秘学习 (1) new Vue 发生了什么

    Vue 初始化主要就干了几件事情,合并配置,初始化生命周期,初始化事件中心,初始化渲染,初始化 data.props.computed.watcher 等等.

  10. python TypeError: must be str, not bytes错误

    TypeError: must be str, not bytes错误: 解答: 写文件处 f=open(filename, 'w')应该写为 open(filename, 'wb') 读文件时 f= ...