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

我需要一个用于pandas dataframe的函数,它可以识别相等的字符串,然后赋值给新列

您可以使用np.where()函数来实现这个功能。np.where()函数可以根据条件选择性地赋值。

首先,您需要导入numpypandas库:

代码语言:txt
复制
import numpy as np
import pandas as pd

然后,您可以定义一个函数,该函数接受三个参数:要比较的字符串列、要匹配的字符串和要赋值的新列名。函数的实现如下:

代码语言:txt
复制
def assign_value(df, column, match_string, new_column):
    df[new_column] = np.where(df[column] == match_string, match_string, '')

接下来,您可以使用该函数来处理pandasDataFrame。假设您有一个名为dfDataFrame,其中包含一个名为column_name的字符串列,您想要将匹配字符串match_string赋值给一个名为new_column_name的新列。您可以调用函数如下:

代码语言:txt
复制
assign_value(df, 'column_name', 'match_string', 'new_column_name')

这将在df中创建一个新列new_column_name,并将匹配的字符串赋值给该列,不匹配的字符串则为空字符串。

这是一个示例代码,您可以根据自己的实际需求进行调整和扩展。希望对您有帮助!

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

相关·内容

Python数据分析实战基础 | 初识Pandas

它提供了两种类型的数据结构,分别是DataFrame和Series,我们可以简单粗暴的把DataFrame理解为Excel里面的一张表,而Series就是表中的某一列,后面学习和用到的所有Pandas骚操作...1、增 增加一列,用df['新列名'] = 新列值的形式,在原数据基础上赋值即可: ?...在案例数据中,我们发现来源明细那一列,可能是系统导出的历史遗留问题,每一个字符串前面都有一个“-”符号,又丑又无用,所以把他给拿掉: ? 一般来说清洗之后的列是要替换掉原来列的: ?...导致报错的原因,是数值型数据和非数值型数据相互计算导致的。PANDAS把带“%”符号的转化率识别成字符串类型,我们需要先拿掉百分号,再将这一列转化为浮点型数据: ?...在实际业务中,一些时候PANDAS会把文件中日期格式的字段读取为字符串格式,这里我们先把字符串'2019-8-3'赋值给新增的日期列,然后用to_datetime()函数将字符串类型转换成时间格式: ?

1.8K30

Python数据分析实战基础 | 初识Pandas

它提供了两种类型的数据结构,分别是DataFrame和Series,我们可以简单粗暴的把DataFrame理解为Excel里面的一张表,而Series就是表中的某一列,后面学习和用到的所有Pandas骚操作...1、增 增加一列,用df['新列名'] = 新列值的形式,在原数据基础上赋值即可: ?...在案例数据中,我们发现来源明细那一列,可能是系统导出的历史遗留问题,每一个字符串前面都有一个“-”符号,又丑又无用,所以把他给拿掉: ? 一般来说清洗之后的列是要替换掉原来列的: ?...导致报错的原因,是数值型数据和非数值型数据相互计算导致的。PANDAS把带“%”符号的转化率识别成字符串类型,我们需要先拿掉百分号,再将这一列转化为浮点型数据: ?...在实际业务中,一些时候PANDAS会把文件中日期格式的字段读取为字符串格式,这里我们先把字符串'2019-8-3'赋值给新增的日期列,然后用to_datetime()函数将字符串类型转换成时间格式: ?

2K12
  • Python数据分析实战基础 | 初识Pandas

    它提供了两种类型的数据结构,分别是DataFrame和Series,我们可以简单粗暴的把DataFrame理解为Excel里面的一张表,而Series就是表中的某一列,后面学习和用到的所有Pandas骚操作...1、增 增加一列,用df['新列名'] = 新列值的形式,在原数据基础上赋值即可: ?...在案例数据中,我们发现来源明细那一列,可能是系统导出的历史遗留问题,每一个字符串前面都有一个“-”符号,又丑又无用,所以把他给拿掉: ? 一般来说清洗之后的列是要替换掉原来列的: ?...导致报错的原因,是数值型数据和非数值型数据相互计算导致的。PANDAS把带“%”符号的转化率识别成字符串类型,我们需要先拿掉百分号,再将这一列转化为浮点型数据: ?...在实际业务中,一些时候PANDAS会把文件中日期格式的字段读取为字符串格式,这里我们先把字符串'2019-8-3'赋值给新增的日期列,然后用to_datetime()函数将字符串类型转换成时间格式: ?

    1.7K30

    Python数据分析实战基础 | 初识Pandas

    它提供了两种类型的数据结构,分别是DataFrame和Series,我们可以简单粗暴的把DataFrame理解为Excel里面的一张表,而Series就是表中的某一列,后面学习和用到的所有Pandas骚操作...1、增 增加一列,用df['新列名'] = 新列值的形式,在原数据基础上赋值即可: ?...在案例数据中,我们发现来源明细那一列,可能是系统导出的历史遗留问题,每一个字符串前面都有一个“-”符号,又丑又无用,所以把他给拿掉: ? 一般来说清洗之后的列是要替换掉原来列的: ?...导致报错的原因,是数值型数据和非数值型数据相互计算导致的。PANDAS把带“%”符号的转化率识别成字符串类型,我们需要先拿掉百分号,再将这一列转化为浮点型数据: ?...在实际业务中,一些时候PANDAS会把文件中日期格式的字段读取为字符串格式,这里我们先把字符串'2019-8-3'赋值给新增的日期列,然后用to_datetime()函数将字符串类型转换成时间格式: ?

    1.4K40

    一文带你快速入门Python | 初识Pandas

    它提供了两种类型的数据结构,分别是DataFrame和Series,我们可以简单粗暴的把DataFrame理解为Excel里面的一张表,而Series就是表中的某一列,后面学习和用到的所有Pandas骚操作...1、增 增加一列,用df['新列名'] = 新列值的形式,在原数据基础上赋值即可: ?...在案例数据中,我们发现来源明细那一列,可能是系统导出的历史遗留问题,每一个字符串前面都有一个“-”符号,又丑又无用,所以把他给拿掉: ? 一般来说清洗之后的列是要替换掉原来列的: ?...导致报错的原因,是数值型数据和非数值型数据相互计算导致的。PANDAS把带“%”符号的转化率识别成字符串类型,我们需要先拿掉百分号,再将这一列转化为浮点型数据: ?...在实际业务中,一些时候PANDAS会把文件中日期格式的字段读取为字符串格式,这里我们先把字符串'2019-8-3'赋值给新增的日期列,然后用to_datetime()函数将字符串类型转换成时间格式: ?

    1.3K01

    Python数据分析实战基础 | 初识Pandas

    它提供了两种类型的数据结构,分别是DataFrame和Series,我们可以简单粗暴的把DataFrame理解为Excel里面的一张表,而Series就是表中的某一列,后面学习和用到的所有Pandas骚操作...1、增 增加一列,用df['新列名'] = 新列值的形式,在原数据基础上赋值即可: ?...在案例数据中,我们发现来源明细那一列,可能是系统导出的历史遗留问题,每一个字符串前面都有一个“-”符号,又丑又无用,所以把他给拿掉: ? 一般来说清洗之后的列是要替换掉原来列的: ?...导致报错的原因,是数值型数据和非数值型数据相互计算导致的。PANDAS把带“%”符号的转化率识别成字符串类型,我们需要先拿掉百分号,再将这一列转化为浮点型数据: ?...在实际业务中,一些时候PANDAS会把文件中日期格式的字段读取为字符串格式,这里我们先把字符串'2019-8-3'赋值给新增的日期列,然后用to_datetime()函数将字符串类型转换成时间格式: ?

    1.3K21

    解决pandas.core.frame.DataFrame格式数据与numpy.ndarray格式数据不一致导致无法运算问题

    问题描述在pandas的DataFrame格式数据中,每一列可以是不同的数据类型,如数值型、字符串型、日期型等。而ndarray格式数据需要每个元素都是相同类型的,通常为数值型。...解决方法要解决DataFrame格式数据与ndarray格式数据不一致导致的无法运算问题,我们可以通过将DataFrame的某一列转换为ndarray并重新赋值给新的变量,然后再进行运算。...要解决DataFrame格式数据与ndarray格式数据不一致导致无法运算的问题,可以通过将DataFrame的某一列转换为ndarray并重新赋值给新的变量,然后再进行运算。...上述代码中,我们将DataFrame的​​Quantity​​列和​​Unit Price​​列转换为ndarray并分别赋值给​​quantity_values​​和​​unit_price_values​​...通过将DataFrame的某一列转换为ndarray,并重新赋值给新的变量,我们可以避免格式不一致的错误,成功进行运算。numpy库的ndarray什么是ndarray?

    53420

    整理了 25 个 Pandas 实用技巧,拿走不谢!

    有很多种实现的途径,我最喜欢的方式是传一个字典给DataFrame constructor,其中字典中的keys为列名,values为列的取值。 ?...这种方式很好,但如果你还想把列名变为非数值型的,你可以强制地将一串字符赋值给columns参数: ? 你可以想到,你传递的字符串的长度必须与列数相同。 3....我们可以使用sample()函数来随机选取75%的行,并将它们赋值给"movies_1"DataFrame: ?...将一个字符串划分成多个列 我们先创建另一个新的示例DataFrame: ? 如果我们需要将“name”这一列划分为三个独立的列,用来表示first, middle, last name呢?...让我们回到stocks这个DataFrame: ? 我们可以创建一个格式化字符串的字典,用于对每一列进行格式化。然后将其传递给DataFrame的style.format()函数: ?

    3.2K10

    整理了25个Pandas实用技巧

    接着我们使用drop()函数来舍弃“moive_1”中出现过的行,将剩下的行赋值给"movies_2"DataFrame: ? 你可以发现总的行数是正确的: ?...一个字符串划分成多列 我们先创建另一个新的示例DataFrame: ? 如果我们需要将“name”这一列划分为三个独立的列,用来表示first, middle, last name呢?...如果我们想要增加新的一列,用于展示每个订单的总价格呢?回忆一下,我们通过使用sum()函数得到了总价格: ?...但是,一个更灵活和有用的方法是定义特定DataFrame中的格式化(style)。 让我们回到stocks这个DataFrame: ? 我们可以创建一个格式化字符串的字典,用于对每一列进行格式化。...那么你可以使用pandas-profiling这个模块。 在你的系统上安装好该模块,然后使用ProfileReport()函数,传递的参数为任何一个DataFrame。

    2.8K40

    整理了25个Pandas实用技巧(下)

    举例来说,我们的movie ratings这个DataFrame有979行: 我们可以使用sample()函数来随机选取75%的行,并将它们赋值给"movies_1"DataFrame: 接着我们使用...drop()函数来舍弃“moive_1”中出现过的行,将剩下的行赋值给"movies_2"DataFrame: 你可以发现总的行数是正确的: 你还可以检查每部电影的索引,或者"moives_1":...一个字符串划分成多列 我们先创建另一个新的示例DataFrame: 如果我们需要将“name”这一列划分为三个独立的列,用来表示first, middle, last name呢?...但是,一个更灵活和有用的方法是定义特定DataFrame中的格式化(style)。 让我们回到stocks这个DataFrame: 我们可以创建一个格式化字符串的字典,用于对每一列进行格式化。...这里有另一个DataFrame格式化的例子: Volume列现在有一个渐变的背景色,你可以轻松地识别出大的和小的数值。

    2.4K10

    Python可视化数据分析05、Pandas数据分析

    使用Pandas,需要先熟悉它的两个主要数据结构:Series和DataFrame,它们为大多数应用提供了一种可靠、易于使用的基础。...Series对象本身及其索引都有一个name属性,该属性跟Pandas其他的关键功能的关系非常密切。 Series的索引可以通过赋值的方式修改。...它包含一个经过排序的列表集,列表集中的每个数据都可以有不同的类型值(数字、字符串、布尔等)。...Datarame有行和列的索引;它可以被看作是一个Series的字典(每个Series共享一个索引)。...对象之间的算术运算 Pandas还提供了sub()函数用于减法,div()函数用于除法,mul()函数用于乘法 from pandas import Series, DataFrame; import

    2.5K20

    Pandas 25 式

    这时,可以用 Numpy 的 random.rand() 函数,设定行数与列数,然后把值传递给 DataFrame 构建器。 ?...rename()方法改列名是最灵活的方式,它的参数是字典,字典的 Key 是原列名,值是新列名,还可以指定轴向(axis)。 ? 这种方式的优点是可以重命名任意数量的列,一列、多列、所有列都可以。...把字符串转换为数值 再创建一个新的 DataFrame 示例。 ? 这个 DataFrame 里的数字其实是以字符串形式保存的,因此,列类型是 object。 ?...把字符串分割为多列 创建一个 DataFrame 示例。 ? 把姓名列分为姓与名两列,用 str.split() 方法,按空格分割,并用 expand 关键字,生成一个新的 DataFrame。 ?...通过赋值语句,把这两列添加到原 DataFrame。 ? 如果想分割字符串,但只想保留分割结果的一列,该怎么操作? ? 要是只想保留城市列,可以选择只把城市加到 DataFrame 里。 ?

    8.4K00

    数据分析篇 | PyCon 大咖亲传 pandas 25 式,长文建议收藏

    这时,可以用 Numpy 的 random.rand() 函数,设定行数与列数,然后把值传递给 DataFrame 构建器。 ?...rename()方法改列名是最灵活的方式,它的参数是字典,字典的 Key 是原列名,值是新列名,还可以指定轴向(axis)。 ? 这种方式的优点是可以重命名任意数量的列,一列、多列、所有列都可以。...把字符串转换为数值 再创建一个新的 DataFrame 示例。 ? 这个 DataFrame 里的数字其实是以字符串形式保存的,因此,列类型是 object。 ?...把字符串分割为多列 创建一个 DataFrame 示例。 ? 把姓名列分为姓与名两列,用 str.split() 方法,按空格分割,并用 expand 关键字,生成一个新的 DataFrame。 ?...通过赋值语句,把这两列添加到原 DataFrame。 ? 如果想分割字符串,但只想保留分割结果的一列,该怎么操作? ? 要是只想保留城市列,可以选择只把城市加到 DataFrame 里。 ?

    7.2K20

    Python数据分析笔记——Numpy、Pandas库

    Numpy基础 1、创建ndarray数组 使用array函数,它接受一切序列型的对象,包括其他数组,然后产生一个新的Numpy数组。 嵌套序列将会被转换成一个多维数组。...2、DataFrame (1)概念: DataFrame是一个表格型的数据结构,含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔值等)。...也可以给某一列赋值一个列表或数组,其长度必须跟DataFrame长度相匹配。如果赋值的是一个Series,则对应的索引位置将被赋值,其他位置的值被赋予空值。...也可以给fillna函数一个字典,就可以实现对不同的列填充不同的值。 Df.fillna({1:0.5,3:-1})——1列的缺失值用0.5填充,3列的缺失值用-1填充。...8、值计数 用于计算一个Series中各值出现的次数。 9、层次化索引 层次化索引是pandas的一个重要功能,它的作用是使你在一个轴上拥有两个或多个索引级别。

    6.4K80

    Python数据分析-pandas库入门

    它可以用在许多原本需要字典参数的函数中,代码示例: dict = {'Ohio': 35000, 'Texas': 71000, 'Oregon': 16000,'Utah': 5000} obj3 =...数据结构 DataFrame 是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔值等)。...,可以将 DataFrame 的列获取为一个 Series,代码示例: frame2['state'] frame2.state 列可以通过赋值的方式进行修改,赋值方式类似 Series。...例如,我们可以给那个空的 “debt” 列赋上一个标量值或一组值(数组或列表形式),代码示例: frame2.debt = np.arange(6.) frame2 注意:将列表或数组赋值给某个列时,...two', 'four','five']) frame2.debt = val frame2 为不存在的列赋值会创建出一个新列。

    3.7K20

    Pandas入门2

    中的函数应用和映射 5.4.1 Numpy中的函数可以用于操作pandas对象 ?...简单说明原因,并修改原始dataframe中的数据使得Mjob和Fjob列变为首字母大写 函数操作不影响原数据,返回值的新数据要赋值给原数据,如下面代码所示: df[['Mjob','Fjob']] =...df[['Mjob','Fjob']].applymap(str.title) Step 7.创建一个名为majority函数,并根据age列数据返回一个布尔值添加到新的数据列,列名为 legal_drinker...方法的返回值的数据类型是字符串。 另外,其实time模块中有strftime方法,需要1个参数,参数为字符串格式。可以将现在的时间转换为字符串。 ?...image.png 7.3 Pandas中的时间序列 pandas通常是用于处理成组日期的,不管这个日期是DataFrame的轴索引还是列。to_datetime方法可以解析多种不同的日期表示形式。

    4.2K20

    Python数学建模算法与应用 - 常用Python命令及程序注解

    数组d被广播(自动扩展)成与a相同的维度,然后进行逐元素相乘。结果赋值给变量e,得到一个新的数组。...数组f的维度与a不完全匹配,但NumPy会自动广播f,使其与a相同的维度,然后进行逐元素相乘。结果赋值给变量g,得到一个新的数组。...根据矩阵乘法的规则,二维数组与列向量的乘法将得到一个新的列向量。结果赋值给变量g。...groupby 是 pandas 中的一个函数,用于根据一个或多个列的值对 DataFrame 进行分组操作。它可以用于数据聚合、统计和分析。...数据存储在名为a的pandas DataFrame中。 b = a.T 这行代码对DataFrame a进行转置,交换行和列,并将转置后的DataFrame赋值给b。

    1.5K30

    Pandas用了一年,这3个函数是我最的最爱……

    本文主要介绍pandas.DataFrame的三个接口,即assign、eval、query,分别用于赋值、查询和执行计算。 注:本文短平快,5分钟可完成阅读了解3个高效的接口。 ?...01 assign 在数据分析处理中,赋值产生新的列是非常高频的应用场景,简单的可能是赋值常数列、复杂的可能是由一列产生另外一个一列,对于这种需求pandas有多种方法实现,但个人唯独喜欢assign,...例如,对于以上简单的DataFrame数据框,需要创建一个新的列C,一般来说可能有3种创建需求:常数列、指定序列数据以及由已知列通过一定计算产生。那么应用assign完成这3个需求分别是: ?...注意事项: assign赋值新列时,一般用新列名=表达式的形式,其中新列名为变量的形式,所以不加引号(加引号时意味着是字符串); assign返回创建了新列的dataframe,所以需要用新的dataframe...02 eval 实际上,eval是一个Python基础函数,用于执行字符串形式的计算表达式,例如以下简单实例: ?

    1.9K30

    【Python】这25个Pandas高频实用技巧,不得不服!

    有很多种实现的途径,我最喜欢的方式是传一个字典给DataFrame constructor,其中字典中的keys为列名,values为列的取值。...将一个字符串划分成多个列 我们先创建另一个新的示例DataFrame: df = pd.DataFrame({'name':['John Arthur Doe', 'Jane Ann Smith'],...将聚合结果与DataFrame进行组合 我们再看一眼orders这个DataFrame: orders.head(10) 如果我们想要增加新的一列,用于展示每个订单的总价格呢?...我们回到stocks这个DataFrame: stocks 我们可以创建一个格式化字符串的字典,用于对每一列进行格式化。...那么你可以使用pandas-profiling这个模块。在你的系统上安装好该模块,然后使用ProfileReport()函数,传递的参数为任何一个DataFrame。

    6.6K50

    Python 数据处理:Pandas库的使用

    DataFrame是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔值等)。...例如,可以给那个空的"debt"列赋上一个标量值或一组值: import pandas as pd data = {'state': ['Ohio', 'Ohio', 'Ohio', 'Nevada...pd.Series([-1.2, -1.5, -1.7], index=['two', 'four', 'five']) frame2['debt'] = val print(frame2) 为不存在的列赋值会创建出一个新列...---- 2.基本功能 2.1 重新索引 Pandas对象的一个重要方法是reindex,其作用是创建一个新对象,它的数据符合新的索引。...由于需要执行一些数据整理和集合逻辑,所以drop方法返回的是一个在指定轴上删除了指定值的新对象: import pandas as pd obj = pd.Series(np.arange(5.),

    22.8K10
    领券