创建包含列表中单词的列标志

尤里钱包

如果列中的条目包含列表中的单词,我想向我的 python pandas 数据帧添加一个标志

对于我们可以使用的任何单独的行

any(word in train['a'][0] for word in words) 

我试着做一个图案

import pandas as pd
import numpy as np
words=['photos','pictures', ' pics ', 'pix', 'image']
pattern = '|'.join(words)

train=pd.DataFrame()
train['a']=words

我试过包含但它没有得到模式

def emb_col_1(tr, te, col, pat, suf):
    tr["0_"+col+suf]=0
    tr.loc[tr[col].str.contains(pat), "0_"+col+suf] =1
    #tr.loc[tr[col].str.count(pat)>0, "0_"+col+suf] =1
    #tr.loc[(word in tr[col].str for word in pat), "0_"+col+suf] =1
    #tr["0_"+col+suf] = np.where(tr[col].str.contains(pat, case=False, na=False), 1, 0)
    #tr["0_"+col+suf] = np.where(any(word in train[col] for word in pat), 1, 0)


emb_col_1(train, test, 'a', words, '_p')
emb_col_1(train, test, 'a', pattern, '_p')

先感谢您

耶斯列

我相信你需要:

words=['photos','pictures', ' pics ', 'pix', 'image']
#remeove trailining whitespaces by strip
pattern = '|'.join([x.strip() for x in words])

train=pd.DataFrame()
#added more values for test
train['a']=words + ['a','pics sss']
print (train)

#remove unused te
def emb_col_1(tr, col, pat, suf):
    #convert True and Falses to 1 and 0 by astype(int)
    tr["0_"+col+suf] = tr[col].str.contains(pat, case=False, na=False).astype(int)
    #return DataFrame
    return tr


df1 = emb_col_1(train, 'a', pattern, '_p')
print (df1)
          a  0_a_p
0    photos      1
1  pictures      1
2     pics       1
3       pix      1
4     image      1
5         a      0
6  pics sss      1

编辑:

words=['photos',' pics ', 'pix', 'image']
#remeove trailining whitespaces by strip
pattern = '|'.join([r'\b{}\b'.format(x.strip()) for x in words])

train=pd.DataFrame()
#added more values for test
train['a']=words + ['a','pics sss', 'pictures']
print (train)
          a
0    photos
1     pics 
2       pix
3     image
4         a
5  pics sss
6  pictures

#remove unused te
def emb_col_1(tr, col, pat, suf):
    #convert True and Falses to 1 and 0 by astype(int)
    tr["0_"+col+suf] = tr[col].str.contains(pat, case=False, na=False).astype(int)
    #return DataFrame
    return tr


df1 = emb_col_1(train, 'a', pattern, '_p')
print (df1)
          a  0_a_p
0    photos      1
1     pics       1
2       pix      1
3     image      1
4         a      0
5  pics sss      1
6  pictures      0

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

根据包含列表元素的列值创建布尔标志

包含单词列表的列的单词分数总和

如何在2D列表中搜索单词并创建包含行号,列号和方向的元组?

过滤熊猫,其中某些列包含列表中的任何单词

比较包含 Pandas 数据框中单词列表的两列

如何根据列表中的单词创建新的 Pandas 列

从包含最多给定单词数的字符串列表中创建子列表

在列中搜索单词列表,如果找到单词,则创建一个布尔列

Google表格+ Apps脚本:仅当列包含特定单词时才创建数据列表

创建包含特定列中条目的列表

从列表中删除包含某些字符的单词

从列表中删除包含单词的行

查找data.table中的列表是否在其他列中包含单词

使用R,如何查看单词列表中的任何单词是否包含在一组列中?

如何从列表或元组列表中删除包含某些单词的列表?

创建一个新列表,其中包含另一个列表中某些单词的以下值

如果文本列包含指定列表中的单词,则过滤pyspark数据框

如果列中不包含单词或短语列表,则过滤数据框的行,即使其不准确

删除列表中包含部分单词的 Python 列表中的元素

如何快速创建包含大写字母的单词列表?

为列表中的句子创建单词词典

从文本输出创建列,但包含多个单词列

排除文件列表中包含排除词列表的某些单词

创建标志列

在结果中包含布尔值标志列

寻求更好的解决方案来创建包含现有列中特定单词的新列

将包含单词列表的单元格转换为列

只要单词不是元组列表中的单词,如何创建单词列表

如何创建包含来自字符串的单词的列?