我有一个数据框,其中包含app user-agents列.我需要做的是从这个专栏中识别特定的应用程序.例如,

NewWordsWithFriendsFree / 2.3 CFNetwork / 672.1.15 Darwin / 14.0.0将被分类为Words With Friends.

iPhone3,1; iPhone OS 7.1.2; com.fingerarts.sudoku2; 143441-1,24 will be Sudoku by FingerArts etc.

我将有另一个数据帧,其中包含我需要匹配的字符串.例如,

Keyword Game

NewWordsWithFriends Words With Friends

com.fingerarts.sudoku Sudoku by FingerArts

如何为pandas数据帧进行这样的查找?例如,数据帧就像

user date user-agent

A 2015-09-02 13:45:56 NewWordsWithFriendsFree/2.3 CFNetwork/672.1.15 Darwin/14.0.0

B 2015-08-31 23:04:21 iPhone3,1; iPhone OS 7.1.2; com.fingerarts.sudoku2; 143441-1,24

我想在查找后添加一个新列GameName.

最佳答案 实现这一目标的一种可能方法是:

import pandas as pd

# some example data

qry = pd.DataFrame.from_dict({"Keyword": ["NewWordsWithFriends",

"com.fingerarts.sudoku"],

"Game": ["Words With Friends",

"Sudoku by FingerArts"]})

df = pd.DataFrame.from_dict({"user-agent" : ["NewWordsWithFriendsFree/2.3 CFNetwork/672.1.15 Darwin/14.0.0",

"iPhone3,1; iPhone OS 7.1.2; com.fingerarts.sudoku2; 143441-1,24"]})

keywords = qry.Keyword.tolist()

games = qry.Game.tolist()

def select(x):

for key, game in zip(keywords, games):

if key in x:

return game

df["GameName"] = df["user-agent"].apply(select)

这将给出:

In [41]: df

Out[41]:

user-agent GameName

0 NewWordsWithFriendsFree/2.3 CFNetwork/672.1.15... Words With Friends

1 iPhone3,1; iPhone OS 7.1.2; com.fingerarts.sud... Sudoku by FingerArts

如果您需要对大型数据集执行此操作,则需要测试此解决方案的性能,并查看它是否足够快以满足您的需要.

如果没有,也许优化例如测试字符串的方式:

对所有可能的游戏进行外循环,然后使用.apply返回每列游戏的结果可以加快速度,因为它可以避免每次调用select()等所有游戏的循环.

python怎么用pandas查找指定字符串_Python Pandas:通过搜索子字符串查找表相关推荐

  1. R语言str_sub函数从字符串中提取或替换子字符串(substring):str_sub函数指定起始位置和终止位置抽取子字符、str_sub函数指定起始位置和终止位置替换子字符串

    R语言str_sub函数从字符串中提取或替换子字符串(substring):str_sub函数指定起始位置和终止位置抽取子字符.str_sub函数指定起始位置和终止位置替换子字符串 目录

  2. c语言 找子字符串,c语言搜索子字符串

    c字符串功能练习: 获取一行字符串,然后,在这行字符串中搜索是否包含一个小字符串 #include #include #define N 100 using namespace std; int re ...

  3. Swift忽略大小写搜索子字符串的三种方法及性能对比

    功能需求 在Swift中,字符串比较和搜索是很常见的操作.有时我们需要以特殊条件在一个字符串中搜索子字符串:比如忽略大小写或忽略变音符号. 在本篇博文里,我们将探讨Swift里三种特殊搜索字符串的方法 ...

  4. python pandas读取csv文件指定行_python pandas获取csv指定行 列的操作方法

    python pandas获取csv指定行 列的操作方法 pandas获取csv指定行,列 house_info = pd.read_csv('house_info.csv') 1:取行的操作: ho ...

  5. python 查找指定文件_python实现在目录中查找指定文件的方法

    本文实例讲述了python实现在目录中查找指定文件的方法.分享给大家供大家参考.具体实现方法如下: 1. 模糊查找 代码如下: import os from glob import glob #用到了 ...

  6. python在json文件中查找指定数据_Python中json的取值 如何使用python提取json中指定字段的数据...

    python中为什么用json有什么作用 如何用python读取json里面的值啊我爱你,所以我给了你伤害我的权力,只要我能忍受,我会一直陪伴着你,但你不能伤害我太多. 数据如下,我想要读取name. ...

  7. python判断字符串中包含某个字符串_Python中最常用的字符串方法!

    译 / 忧郁的红秋裤 字符串是字符序列.Python中内置的string类代表基于Unicode国际字符集的字符串.除了Python中常见的操作外,字符串还有一些专属于它们的附加方法.下图显示了所有这 ...

  8. python输出数字和字符串_Python中的数值和字符串

    一.Python中的数值 python中的数值分为三类:整型.浮点型和复数 1.整型: python3的整型支持各种类型的整数: python的整数值有4种表达形式: a.十进制形式,最普通的整数就是 ...

  9. bat递归查找指定文件_dos命令find图文教程,查找搜索文件文本字符串,bat批处理脚本...

    大家好,我是老盖,首先感谢观看本文,本篇文章做的有视频,视频讲述的比较详细,也可以看我发布的视频. 今天,我们学习DOS命令中的find这个命令,它这个命令可以查询文件的字符串,也可以查询另外其他命令 ...

  10. python unicode转字符串_Python: 在Unicode和普通字符串之间转换

    Unicode字符串可以用多种方式编码为普通字符串, 依照你所选择的编码(encoding):Toggle line numbers1 #将Unicode转换成普通的Python字符串:"编 ...

最新文章

  1. Struts2防止表单重复提交
  2. Observer 模式在eHR中的应用
  3. hibernate savealiasentity 保存后id为空_好程序员Java教程分享Java面试题之Hibernate
  4. jsr223 java_Jmeter 组件 JSR223 使用详解
  5. HBase:分布式列式NoSQL数据库
  6. 可怕!公司部署了一个东西,悄悄盯着你……
  7. 结构模式--之--享元模式
  8. git报错之fatal: protocol error: bad line length character: No This
  9. [渝粤教育] 江西理工大学 新融合大学英语(I) 参考 资料
  10. 统一建模语言UML基础知识
  11. python爬取京东商品信息_使用selenium爬取京东商品信息
  12. Youtube上播放量前100的单曲整理
  13. 采用ODC改善软件质量:一个案例研究
  14. STM32低功耗总结——转载
  15. SSM+栾城五中的图书管理 毕业设计-附源码171727
  16. Codeforces Round #802 (Div. 2)
  17. 家具类web网页模板分享,前端期末作业,静态页面
  18. Servlet3.0实现的简单mvc框架
  19. Apache Open Sourse List 项目列表
  20. ipv6服务器有什么优势,ipv6是什么,有什么好处,中国为什么不推广IPV6 | 帮助信息-动天数据...

热门文章

  1. 单源最短路(spfa+Dijkstra)附数据
  2. php 3种常见设计模式
  3. Git.Framework 框架随手记--ORM条件组合
  4. State Machine Workflow 入门篇
  5. knn k-近邻 学习笔记
  6. office向快速访问工具栏加快速操作
  7. HoloToolkit/unity远程实时传输视频
  8. Atitit go语言 golang 艾提拉总结特性优缺点 目录 1. Go 语言最主要的特性: 1 2. 体积大概100M 1 3. 问题 1 3.1. 编译速度和异常控制怎么样 1 3.2.
  9. atitit uke产品线 attilax总结.docx 1. 知识聚合 知识检索 产品线 1 2. 爬虫产品线 1 3. 发帖机产品线 1 4. 发动机产品线 1 5. O2o产品线(旅游
  10. Atitit. 状态模式(State)attilax 总结 跟个策 略模式的区别