【发布时间】:2020-10-29 08:44:19
【问题描述】:
我有一个 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)
【问题讨论】:
-
为什么不在pandas中使用
count()函数呢? -
@CeliusStingher 我正在研究管道,所以我的计划是为其创建一个 FunctionTransformer,但我愿意接受任何解决方案!我还是新手:3
-
你能澄清你的问题吗?
标签: python pandas dataframe scikit-learn dataset