微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

修剪数据框中的特定单词

如何解决修剪数据框中的特定单词

我有一个带有一些三元组(以及更多 ngram)的 df,我想检查句子是否以特定单词列表开头或结尾,并将它们从我的 df 中删除。例如:

import pandas as pd
df = pd.DataFrame({'Trigrams+': ['because of tuna','to your family','pay to you','give you in','happy birthday to you'],'Count': [10,9,8,7,5]})

list_remove = ['of','in','to','a']

print(df)

    Trigrams+            Count
0   because of tuna       10
1   to your family         9
2   pay to you             8
3   give you in            7
4   happy birthday to you  5

我尝试使用 strip 但在上面的示例中,第一行将返回 因为 tun

输出应该是这样的:

list_remove = ['of','a']

    Trigrams+             Count
0   because of tuna        10
1   pay to you              8
2   happy birthday to you   5

有人可以帮我吗?提前致谢!

解决方法

试试:

list_remove = ["of","in","to","a"]

tmp = df["Trigrams+"].str.split()

df = df[~(tmp.str[0].isin(list_remove) | tmp.str[-1].isin(list_remove))]
print(df)

打印:

               Trigrams+  Count
0        because of tuna     10
2             pay to you      8
4  happy birthday to you      5
,

你可以试试这样的:

import numpy as np

def func(x):
  y = x.split()[0]
  z = x.split()[-1]
  if (y in list_remove) or (z in list_remove):
     return np.nan
  return x

df['Trigrams+'] = df['Trigrams+'].apply(lambda x:func(x))
df = df.dropna().reset_index(drop=True)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。