首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

通过匹配字典列表中的子字符串来映射pandas列

,可以使用pandas的map()函数。该函数可以将字典列表中的键值对应到pandas列中的值,实现映射关系。

具体步骤如下:

  1. 首先,定义一个字典列表,每个字典包含子字符串与对应映射值的键值对。例如:
代码语言:txt
复制
mapping = [
    {'sub_str': 'apple', 'map_value': 'fruit'},
    {'sub_str': 'carrot', 'map_value': 'vegetable'}
]
  1. 然后,创建一个pandas的DataFrame,并包含需要映射的列。例如:
代码语言:txt
复制
import pandas as pd

data = {'text': ['I love apple', 'I eat carrot']}
df = pd.DataFrame(data)
  1. 接下来,使用map()函数将字典列表中的子字符串映射到pandas列中的值。例如:
代码语言:txt
复制
df['category'] = df['text'].map({item['sub_str']: item['map_value'] for item in mapping})
  1. 最后,可以查看映射结果:
代码语言:txt
复制
print(df)

输出:

代码语言:txt
复制
             text   category
0   I love apple      fruit
1     I eat carrot  vegetable

这种方法适用于通过匹配字典列表中的子字符串来映射pandas列的场景,可以方便地实现数据的映射和转换。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

在 Python 通过列表字典创建 DataFrame 时,若字典 key 顺序不一样以及部分字典缺失某些键,pandas 将如何处理?

pandas 官方文档地址:https://pandas.pydata.org/ 在 Python ,使用 pandas通过列表字典(即列表每个元素是一个字典)创建 DataFrame 时,如果每个字典...首先,我们需要了解什么是 DataFrame 以及为什么会有通过列表字典创建 DataFrame 需求。...当通过列表字典创建 DataFrame 时,每个字典通常代表一行数据,字典键(key)对应列名,而值(value)对应该行该数据。如果每个字典中键顺序不同,pandas 将如何处理呢?...顺序:在创建 DataFrame 时,pandas 会检查所有字典中出现键,并根据这些键首次出现顺序确定顺序。...总而言之,pandas 在处理通过列表字典创建 DataFrame 时各个字典键顺序不同以及部分字典缺失某些键时显示出了极高灵活性和容错能力。

9600

(数据科学学习手札69)详解pandasmap、apply、applymap、groupby、agg

2.1 map()   类似Python内建map()方法,pandasmap()方法将函数、字典索引或是一些需要接受单个输入值特别的对象与对应单个每一个元素建立联系并串行得到结果,譬如这里我们想要得到...genderF、M转换为女性、男性,可以有以下几种实现方式: ● 字典映射   这里我们编写F、M与女性、男性之间一一映射字典,再利用map()方法来得到映射: #定义F->女性,M->男性映射字典...()之前添加tqdm.tqdm.pandas(desc='')启动对apply过程监视,其中desc参数传入对进度进行说明字符串,下面我们在上一小部分示例基础上进行改造添加进度条功能: from...当变量为1个时传入名称字符串即可,当为多个时传入这些变量名称列表,DataFrame对象通过groupby()之后返回一个生成器,需要将其列表化才能得到需要分组后子集,如下面的示例: #按照年份和性别对婴儿姓名数据进行分组...可以注意到虽然我们使用reset_index()将索引还原回变量,但聚合结果列名变成红色框奇怪样子,而在pandas 0.25.0以及之后版本,可以使用pd.NamedAgg()为聚合后每一赋予新名字

5K60
  • 不再纠结,一文详解pandasmap、apply、applymap、groupby、agg...

    2.1 map() 类似Python内建map()方法,pandasmap()方法将函数、字典索引或是一些需要接受单个输入值特别的对象与对应单个每一个元素建立联系并串行得到结果。...譬如这里我们想要得到genderF、M转换为女性、男性,可以有以下几种实现方式: 字典映射 这里我们编写F、M与女性、男性之间一一映射字典,再利用map()方法来得到映射: #定义F->女性...,M->男性映射字典 gender2xb = {'F': '女性', 'M': '男性'} #利用map()方法得到对应gender映射 data.gender.map(gender2xb)...其传入参数为字典,键为变量名,值为对应聚合函数字符串,譬如{'v1':['sum','mean'], 'v2':['median','max','min]}就代表对数据框v1进行求和、均值操作...可以注意到虽然我们使用reset_index()将索引还原回变量,但聚合结果列名变成红色框奇怪样子,而在pandas 0.25.0以及之后版本,可以使用pd.NamedAgg()为聚合后每一赋予新名字

    5K10

    不再纠结,一文详解pandasmap、apply、applymap、groupby、agg...

    譬如这里我们想要得到genderF、M转换为女性、男性,可以有以下几种实现方式: 字典映射 这里我们编写F、M与女性、男性之间一一映射字典,再利用map()方法来得到映射: #定义F->女性...,M->男性映射字典 gender2xb = {'F': '女性', 'M': '男性'} #利用map()方法得到对应gender映射 data.gender.map(gender2xb)...当为多个时传入这些变量名称列表,DataFrame对象通过groupby()之后返回一个生成器,需要将其列表化才能得到需要分组后子集,如下面的示例: #按照年份和性别对婴儿姓名数据进行分组 groups...其传入参数为字典,键为变量名,值为对应聚合函数字符串,譬如{'v1':['sum','mean'], 'v2':['median','max','min]}就代表对数据框v1进行求和、均值操作...,但聚合结果列名变成红色框奇怪样子,而在pandas 0.25.0以及之后版本,可以使用pd.NamedAgg()为聚合后每一赋予新名字: data.groupby(['year','

    4.9K30

    python数据科学系列:pandas入门详细教程

    所以从这个角度讲,pandas数据创建一种灵活方式就是通过字典或者嵌套字典,同时也自然衍生出了适用于series和dataframe类似字典访问接口,即通过loc索引访问。...或字典(用于重命名行标签和标签) reindex,接收一个新序列与已有标签匹配,当原标签不存在相应信息时,填充NAN或者可选填充值 set_index/reset_index,互为逆操作,...切片形式访问时按行进行查询,又区分数字切片和标签切片两种情况:当输入数字索引切片时,类似于普通列表切片;当输入标签切片时,执行范围查询(即无需切片首末值存在于标签),包含两端标签结果,无匹配行时返回为空...isin/notin,条件范围查询,即根据特定值是否存在于指定列表返回相应结果 where,仍然是执行条件查询,但会返回全部结果,只是将不满足匹配条件结果赋值为NaN或其他指定值,可用于筛选或屏蔽值...对象,功能与python普通map函数类似,即对给定序列每个值执行相同映射操作,不同是seriesmap接口映射方式既可以是一个函数,也可以是一个字典 ?

    13.9K20

    Pandas替换值简单方法

    在这篇文章,让我们具体看看在 DataFrame 替换值和字符串。当您想替换每个值或只想编辑值一部分时,这会派上用场。 如果您想继续,请在此处下载数据集并加载下面的代码。...Pandas replace 方法允许您在 DataFrame 指定系列搜索值,以查找随后可以更改值或字符串。...首先,让我们快速看一下如何通过将“Of The”更改为“of the”对表“Film”进行简单更改。...否则,replace 方法只会更改“Of The”值,因为它只会匹配整个值。 您可以通过匹配确切字符串并提供您想要更改整个值完成我们上面所做相同事情,如下所示。...首先,如果有多个想要匹配正则表达式,可以在列表定义它们,并将其作为关键字参数传递给 replace 方法。然后,只需要显式传递另一个关键字参数值定义想要替换值。

    5.4K30

    嘀~正则表达式快速上手指南(下篇)

    将转换完字符串添加到 emails_dict 字典,以便后续能极其方便地转换为pandas数据结构。 在步骤3B,我们对 s_name 进行几乎一致操作. ?...在正则表达式里, 在+ 左侧匹配一个或多个模式实例。用\d+ 匹配可以不用考虑日期具体天数是一位还是两位数字。 之后一个空格可以通过寻找空白字符 \s 解析。...如果使用 pandas解决这个问题的话 会遇到问题 ,因此,我们选择使用 email 包。 创建字典列表 最后,添加字典emails_dict到 emails 列表: ?...使用 pandas 处理数据 如果使用 pandas 库处理列表字典 那将非常简单。每个键会变成列名, 而键值变成行内容。 我们需要做就是使用如下代码: ?...emails_df['sender_email'] 选择了标记为 sender_email,接下来,如果在该匹配字符串 "maktoob" 或 "spinfinder" ,则str.contains

    4K10

    Python数据分析-pandas库入门

    导入 pandas 模块,和常用子模块 Series 和 DataFrame import pands as pd from pandas import Series,DataFrame 通过传递值列表创建...Series 单个或一组值,代码示例: obj2[['a', 'b', 'c']] obj2['a']=2 obj2[['a', 'b', 'c']] [‘a’,’b’,’c]是索引列表,即使它包含字符串而不是整数...看成是一个定长有序字典,因为它是索引值到数据值一个映射。...,它含有一组有序,每可以是不同值类型(数值、字符串、布尔值等)。...DataFrame 既有行索引也有索引,它可以被看做由 Series 组成字典(共用同一个索引)。DataFrame 数据是以一个或多个二维块存放(而不是列表字典或别的一维数据结构)。

    3.7K20

    数据科学入门必读:如何使用正则表达式?

    re.search() re.findall() 匹配是一个模式在一个字符串所有实例然后以列表形式返回它们,而 re.search() 匹配是一个模式在一个字符串第一个实例,然后以 re...第一个是所要替换字符串,第二个是用来替换前者字符串,第三个是主字符串本身。 pandas 正则表达式 现在我们已经有了正则表达式基础,我们可以试试一些更高级功能。...pandas dataframe 或表格。...这很重要,因为我们希望通过一个 for 循环遍历这个列表,一封封地处理邮件。但我们怎么知道如何通过字符串 From r 进行分割?因为我们在写这个脚本之前先查看了文件。...使用 pandas 操作数据 将字典放入列表后,我们就能使用 pandas轻松操作这些数据了。每个 key 都会成为一个标题,每个值都是一一行。

    3.5K100

    Python之PandasSeries、DataFrame实践

    2. pandas数据结构DataFrame是一个表格型数据结构,它含有一组有序,每可以是不同值类型(数值、字符串、布尔值)。...dataframe数据是以一个或者多个二位块存放(而不是列表字典或者别的一维数据结构)。 3.索引对象 pandas索引对象负责管理轴标签和其他元素(比如轴名称等)。...和Series之间算数运算默认情况下会将Series索引项 匹配到DataFrame,然后沿着行一直向下广播。...函数应用和映射 NumPyufuncs(元素级数组方法)也可用操作pandas对象 DataFrame中将函数应用到由各或各行所行成一维数组上可用apply方法。 7....9.2 NA处理办法 dropna 根据各标签值是否存在缺失数据对轴标签进行过滤,可通过阀值调节对缺失值容忍度 fillna 用指定或插值方法(如ffil或bfill

    3.9K50

    Python 数据分析(PYDA)第三版(三)

    converters 包含号或名称映射到函数字典(例如,{"foo": f}将对"foo"所有值应用函数f)。...基本类型是对象(字典)、数组(列表)、字符串、数字、布尔值和空值。对象所有键都必须是字符串。有几个 Python 库可用于读取和写入 JSON 数据。...我们将在本章后面的 Series 查看这些字符串方法。 重命名轴索引 与 Series 值类似,轴标签也可以通过函数或某种形式映射进行类似转换,以生成新、不同标记对象。...,则返回True join 用作分隔符将字符串用于连接其他字符串序列 index 如果在字符串中找到传递字符串,则返回第一个出现起始索引;否则,如果未找到,则引发ValueError find 返回字符串第一个出现字符串第一个字符位置...引用替换字符串匹配组元素 | pandas 字符串函数 清理混乱数据集以进行分析通常需要大量字符串操作。

    25300

    python下PandasDataFrame基本操作(二),DataFrame、dict、array构造简析

    DataFrame简介:   DataFrame是一个表格型数据结构,它含有一组有序,每可以是不同值类型(数值、字符串、布尔值等)。...跟其他类似的数据结构相比(如Rdata.frame),DataFrame面向行和面向操作基本上是平衡。...其实,DataFrame数据是以一个或多个二维块存放(而不是列表字典或别的一维数据结构)。...:将列表或数组赋值给某个时,其长度必须跟DataFrame长度相匹配!!...7 3 4 8 第二种:将包含不同列表列表转换为数据框 from pandas.core.frame import DataFrame a=[[1,2,3,4],[5,6,7,8]]#包含两个不同列表

    4.4K30

    Python常用小技巧总结

    others Python合并多个EXCEL工作表 pandasSeries和Dataframe数据类型互转 相同字段合并 Python小技巧 简单表达式 列表推导式 交换变量 检查对象使用内存情况...合并字典 字符串分割成列表 字符串列表创建字符串 Python查看图片 itertools模块combinations itertoolsreduce 字典.get()方法 解压zip压缩包到指定文件路径...,会报错,可通过设置lsuffix,rsuffix进⾏解决,如果需要按照共同进⾏合并,就要⽤到set_index(col1) pd.merge(df1,df2,on='col1',how='outer...,返回序列项按输入iterable顺序排序。...关系好定义为共同参演电影数量最多 1 .字典get方法 D.get(key[,default=None]) key – 字典要查找键。

    9.4K20

    《利用Python进行数据分析·第2版》第7章 数据清洗和准备7.1 处理缺失数据7.2 数据转换7.3 字符串操作7.4 总结

    如果你发现了一种本书或pandas没有的数据操作方式,请尽管在邮件列表或GitHub网站上提出。实际上,pandas许多设计和实现都是由真实应用需求所驱动。...对于许多数据集,你可能希望根据数组、Series或DataFrame实现转换工作。...我们会在后面学习Series字符串方法。 重命名轴索引 跟Series值一样,轴标签也可以通过函数或映射进行转换,从而得到一个新不同标签对象。轴还可以被就地修改,而无需新建一个数据结构。...一种更快更符合Python风格方式是,向字符串"::"join方法传入一个列表或元组: In [140]: '::'.join(pieces) Out[140]: 'a::b::guido' 其它方法关注串定位...findall返回字符串中所有的匹配项,而search则只返回第一个匹配项。match更加严格,它只匹配字符串首部。

    5.3K90

    Python 数据处理:Pandas使用

    ('b' in obj2) print('e' in obj2) 如果数据被存放在一个Python字典,也可以直接通过这个字典创建Series: import pandas as pd sdata...,它含有一组有序,每可以是不同值类型(数值、字符串、布尔值等)。...DataFrame既有行索引也有索引,它可以被看做由Series组成字典(共用同一个索引)。DataFrame数据是以一个或多个二维块存放(而不是列表字典或别的一维数据结构)。...: 类型 描述 二维ndarray 数据矩阵,还可以传入行标和标 由数组、列表或元组组成字典 每个序列会变成DataFrame。...通过标签选取行或 get_value, set_value 通过行和标签选取单一值 ---- 2.5 整数索引 处理整数索引 Pandas 对象常常难住新手,因为它与 Python 内置列表和元组索引语法不同

    22.7K10

    一文介绍Pandas9种数据访问方式

    "访问 切片形式访问时按行进行查询,又区分数字切片和标签切片两种情况:当输入数字索引切片时,类似于普通列表切片;当输入标签切片时,执行范围查询(即无需切片首末值存在于标签),包含两端标签结果,无匹配行时返回为空...例如,当标签类型(可通过df.index.dtype查看)为时间类型时,若使用无法隐式转换为时间字符串作为索引切片,则引发报错 ? 切片形式返回行查询,且为范围查询 ?...4. isin,条件范围查询,一般是对某一判断其取值是否在某个可迭代集合。即根据特定值是否存在于指定列表返回相应结果。 5. where,妥妥Pandas仿照SQL实现算子命名。...在DataFrame,filter是用来读取特定行或,并支持三种形式筛选:固定列名(items)、正则表达式(regex)以及模糊查询(like),并通过axis参数来控制是行方向或方向查询...由于DataFrame可看做是嵌套dict结构,所以也提供了类似字典get()方法,主要适用于不确定数据结构是否包含该标签时,与字典get方法非常类似: ? 9. lookup。

    3.8K30

    Pandas

    ,axis=0):修改轴名称 df.rename(mapper,axis=0/1):用于修改行或者标签名称,mapper指的是一种映射关系,可以写一个字典,也可以引入一个函数(函数输入参数为要修改标签名称...以加法为例,它会匹配索引相同(行和进行算术运算,再将索引不匹配数据视作缺失值,但是也会添加到最后运算结果,从而组成加法运算结果。...()方法 多个 dataframe 连接(通过 index 匹配进行)(Join and Merge) 通过一个或多个键将两个数据集连接起来(完成 SQl join 操作):pandas.merge...、字典,或函数与字符串列表。...传入一个函数名组成列表,则会将每一个函数函数名作为返回值列名,如果不希望使用函数名作为列名,可以将列表元素写成类似’(column_name,function)'元组形式指定列名为name

    9.1K30

    通宵翻译Pandas官方文档,写了这份Excel万字肝货操作!

    pandas 通过在 DataFrame 中指定单个系列提供矢量化操作。可以以相同方式分配新。DataFrame.drop() 方法从 DataFrame 删除一。...按值排序 Excel电子表格排序,是通过排序对话框完成pandas 有一个 DataFrame.sort_values() 方法,它需要一个列表排序。...查找位置 FIND电子表格函数返回字符串位置,第一个字符为 1。 您可以使用 Series.str.find() 方法查找字符串字符位置。find 搜索子字符串第一个位置。...; 如果匹配多行,则每个匹配都会有一行,而不仅仅是第一行; 它将包括查找表所有,而不仅仅是单个指定; 它支持更复杂连接操作; 其他注意事项 1....查找和替换 Excel 查找对话框将您带到匹配单元格。在 Pandas ,这个操作一般是通过条件表达式一次对整个或 DataFrame 完成。

    19.5K20
    领券