我有一个DataFrame
包含index
和text
列
例如:
index | text
1 | "I have a pen, but I lost it today."
2 | "I have pineapple and pen, but I lost it today."
现在我有一个很长的列表,我想将text
中的每个单词与列表匹配
比如说:
long_list = ['pen', 'pineapple']
我想创建一个FunctionTransformer
来将long_list
中的单词与列值的每个单词相匹配,如果存在匹配,则返回计数
index | text | count
1 | "I have a pen, but I lost it today." | 1
2 | "I have pineapple and pen, but I lost it today." | 2
我是这样做的:
def count_words(df):
long_list = ['pen', 'pineapple']
count = 0
for c in df['tweet_text']:
if c in long_list:
count = count + 1
df['count'] = count
return df
count_word = FunctionTransformer(count_words, validate=False)
我如何开发其他FunctionTransformer
的示例如下:
def convert_twitter_datetime(df):
df['hour'] = pd.to_datetime(df['created_at'], format='%a %b %d %H:%M:%S +0000 %Y').dt.strftime('%H').astype(int)
return df
convert_datetime = FunctionTransformer(convert_twitter_datetime, validate=False)
熊猫有
str.count
:输出:
灵感来源于@Quang Hoang的回答
导致
以及以下
df2
:我们得到
这表明,我们将函数转换为
sklearn
样式的对象。为了进一步说明这一点,我们可以将列名作为关键字参数交给count_strings
用
|
连接列表中的元素。查找具有.str.findall()
的匹配元素并应用.str.len()
进行计数相关问题 更多 >
编程相关推荐