【发布时间】:2022-11-21 22:55:25
【问题描述】:
我的 pd 数据框如下所示:
| tweet | hashtag |
|---|---|
| bla banana bla bla 23 | [banana 23] |
| bla bla apple | [apple] |
我想执行 A-B 并从 tweet 列中删除 hashtag 列的内容,获得以下内容:
| tweet | hashtags |
|---|---|
| bla bla bla | [banana 23] |
| bla bla | [apple] |
我尝试了几种方法:
和:
def remove_hashtags(df):
df.tweet = [df.tweet.apply(" ".join(word)) for word in df['tweet'].apply(word_tokenize) if word not in df['hashtags']]
return df`
我得到 TypeError: unhashable type: 'list' 和
def remove_hashtags(df):
df.tweet = [df.tweet.apply(" ".join(word)) for word in df['tweet'].apply(word_tokenize) if word not in df['hashtags'].apply(word_tokenize)]
return df
我收到 TypeError: expected string or bytes-like object ` 我再次尝试删除潜在的空值并将 everythinig 转换为字符串,但也不起作用。
我终于尝试在 word 标记化之前对 tweet 列进行 sent_tokenize:
def remove_tweets(df):
for sent in sent_tokenize(df.tweet):
for word in word_tokenize(sent):
df["tweet2"] = df["tweet2"].apply(" ".join(word))
return df
但又得到了:TypeError: expected string or bytes-like object
我终于尝试了:
def remove_tweets(df):
clean_text = []
for word in word_tokenize(df.tweet):
if word not in df.hashtags:
clean_text.append(word)
df['tweet2'] = clean_text
return df
但得到 TypeError: expected string or bytes-like object
ps 在通过 df['hashtags'].apply(lambda x: ','.join(map(str, x))) 从列表中提取主题标签列元素后,我也尝试了我提到的所有内容,但仍然无效。
有什么提示吗?
【问题讨论】:
标签: pandas dataframe typeerror