我在数据帧df中有这个庞大的 41,000 行系列:
column1 column2 column2
content in not below like this amsterdam nan sport
massive create non-programming question nan religion
我想删除第1 列中低于 5 次或等于的所有单词出现次数,因此df数据帧如下所示:
column1 column2 column2
content amsterdam nan sport
massive create non-programming question nan religion
有人可以帮我吗?
我最初的尝试是这样的:
df['column1'] = df['column1'].apply(filter(lambda x : (x, df['column1'].count < 4)), set(df['column1']))
但我收到错误消息说:
TypeError: filter expected 2 arguments, got 1
最好为此使用函数,因为单个 lambda 太复杂且不是很干净。
正则表达式将元素转换为单词列表。然后,筛选器会保留大于 5 的单词。
import re
def remove_five_or_less(line):
word_list = re.sub("[^w]", " ", line["column1"]).split()
filtered_list = filter(lambda x: len(x) > 5, word_list)
return " ".join(filtered_list)
df["column1"] = df.apply(lambda x: remove_five_or_less(x), axis=1)