考虑到Python Pandas中字母和列表的大小,如何根据第一列创建新列?

我在 Python Pandas 中有 DataFrame,如下所示:

col1
--------
John Simon prd
agc Ann White
BeN and Ann

bad_list = ["Ben", "Wayne"]

我需要做一些类似的事情:创建新列“col2”,如果“col1”中的值来自bad_list,则在“col2”中为该行提供“1”,如果没有,则为“0”。

请注意,应忽略 bad_list 和“col1”中的字母大小,例如“col1”中的值为“BeN”,而 bad_list 中的值为“Ben”,因此“col2”中的值也应为“1”

因此,基于数据框和上述条件,我需要如下结果:

col1            | col2
----------------|------
John Simon prd  |0
arc Ann White   |0
BeN and Ann     |1

“col2”中的最后一行值为“1”,因为“Ben”在 bad_list 中,不管“col1”中的写为 BeN。我怎样才能在 Python Pandas 中做到这一点?

阿努拉格·达巴斯

您可以尝试通过str.title(),str.contains()astype()方法:

df['col2']=df['col1'].str.title().str.contains('|'.join(bad_list)).astype(int)

的输出df

    col1            col2
0   John Simon prd  0
1   agc Ann White   0
2   BeN and Ann     1  

代码的逐步分解:

由于您的列表 ie bad_list 包含格式中的单词(Ist word 是大写的,其余都是小)所以我们使用这样转换整个 Series('col1')Series.str.title()所以现在 Series('col1') 看起来像:

0    John Simon Prd
1     Agc Ann White
2       Ben And Ann
Name: col1, dtype: object

然后我们使用str.contains()它在检查系列('col1')的行中是否存在 bad_list 中的任何元素后,为我们提供一个布尔系列:

0    False
1    False
2     True
Name: col1, dtype: bool

笔记:

这里是contains()方法里面的代码

'|'.join(bad_list)
#giving you a string(output of above code):
'Ben|Wayne'

最后,我们通过astype()方法将boolean Series 类型转换为 int

0    0
1    0
2    1
Name: col1, dtype: int32

或者

另一种方法是使用@seanbean 在评论中建议的模块中的IGNORECASE标志re

from re import IGNORECASE

df['col2']=df['col1'].str.contains('|'.join(bad_list), flags=IGNORECASE).astype(int)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

考虑到日期和时间值,如何在 Python 中从 csv 创建字典?

如何考虑到列如何在python中将文本文件写入csv

考虑到每个集合的顺序合并两个集合(在Python中)

考虑到往年,如何添加新列?

考虑到列表的索引,如何组合列表中的元素?

考虑到不同的输入大小,如何优化代码?

list.files 考虑到 R 中的列表编号?

考虑到多列,使用MySQL查找重复项

考虑到R中文件大小的list.files?

考虑到Takewhile的最后一次迭代(itertools)

将 1 - 5 添加到行,同时考虑到 Pandas、Python 中的行数(也可以称为平铺/分箱)

考虑到其他变量,我可以每月在 Python 中汇总一个数据框吗?

如何使用Python检查纬度/经度坐标是否在多边形内。(考虑到大圈子。)

考虑到仅来自一列的文本,如何删除重复的行?

考虑到rowpan和colspan,如何从一维数组创建动态html表?

考虑到NA列,使用R中的数据透视表创建渠道

考虑到NA列,在R中创建渠道转化率

考虑到Oracle中的多个列,如何重新排序DENSE_RANK列?

根据多列排列长格式数据框,并考虑到更改的排序方向

将行转为列 考虑到列名和值列 SQL

考虑到不同月份的 startDate 和 endDate 月份,如何生成日期列表?

考虑到R中的多个条件,如何在等随机分布中创建数据子集

Python3:考虑到字符串的长度不同,有没有办法将字符串列表拆分为单独的列表?

如何在elasticsearch中创建考虑到日期范围的直方图

插入到哈希图中,是否考虑到Set中的重复项?

考虑到 ArrayList 没有大小限制,Java 中的 LinkedList 的目的是什么?

考虑到Spacy中的引理,是否可以获得单词列表?

确定每个数据框行的最大值的列,并考虑到联系

考虑到所需的最小点数,如何通过 MultiPoint 和 MultiPolygon 之间的交集过滤 SpatialIndexFeatureCollection