我有一个数据框,其中包含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. 【深度学习篇】--神经网络中的调优二,防止过拟合
  2. clickhouse 航空数据_趣头条基于Flink+ClickHouse的实时数据分析平台
  3. P1111 修复公路
  4. html文字斜体变成正体,$$中的字母如何由斜体变成正体?
  5. 警惕:高考将至 著名高校网站被挂马
  6. 世界上最诡异的画,到底为何让无数人闻风丧胆?
  7. jsp内置对象(四)-----session对象
  8. 文本分析工具 数据科学_数据科学工具
  9. Hive篇--搭建Hive集群
  10. LNMP Keepalived Haproxy 笔记
  11. Hadoop有什么用
  12. nginx 隐藏端口号、自签名https、强制https
  13. Ubuntu nginx 1.6.0 服务器 nginx.conf等相关配置
  14. goredis文档中文翻译---Getting started with Golang Redis
  15. shark-0.9.1 安装后测试
  16. 职业投资策略(转贴)
  17. php计算器按钮功能,PHP实现的简单在线计算器功能示例
  18. Midjourney|文心一格prompt教程[Text Prompt(下篇)]:游戏、实物、人物、风景、动漫、邮票、海报等生成,终极模板教学
  19. 一杯严选+荣登一品+美私奢玩@HiFi++中国式高阶生活美学的海外文化节
  20. 【Element ui 的NavMenu二级菜单下拉icon修改】

热门文章

  1. canvas绘制圆和弧(三)
  2. Python机器登陆新浪微博代码示例
  3. 七月算法机器学习 7 工作流程与模型调优 Kaggle案例泰坦尼克号问题
  4. 190428每日一句
  5. C#使用Socket简单异步通讯
  6. unity read files 从ini文件
  7. Atitit 持久化 之道 attilax 艾龙著 1. 第2章 Java对象持久化技术概述 2 1.1. 2.1 直接通过JDBC API来持久化实体域对象 2 1.2. 2.2 ORM简介 2
  8. Atitit onvif协议获取rtsp地址播放java语言attilx总结
  9. Atitit 全屏模式的cs桌面客户端软件gui h5解决方案 Kiosk模式
  10. Atitti.数字证书体系cer pfx attilax总结