"""DataFrame of tweets"""
tweet_df = pd.DataFrame(text_tweets, columns = ["Date", "Tweet"])
"""Terms to search tweets"""
TweetsCheckList = ["Word", "Word2",..., "Word100"]
"""Empty Filtered DataFrame based on TweetsCheckList"""
df2 = pd.DataFrame(columns = ["Date", "Tweet"])
for y in tweet_df.iterrows():
for x in TweetsCheckList:
if x in tweet_df.Tweet:
df2.append(y)
大家好,只是一个问题。
我想问问是否有人可以根据列表中的条目从根本上过滤掉一个数据框。我有一些要检查的单词是否存在于DataFrame中存储的任何推文中。我不确定为什么这行不通,所以如果有人有任何指导,那将非常有帮助,谢谢!
我的理解是,我将搜索数据框的每一行
每次搜索一行时,我都会将TweetsCheckList中的每个项目都放入,并检查它是否在当前tweet中。如果是这样,我将该推文附加到空的DataFrame中。为什么这不合适?
更新:
我尝试了以下操作:
for y in tweet_df:
for x in covid19TweetsCheckList:
if tweet_df.Tweet.str.contains(x):
covid_df.append(y)
无济于事...它告诉我:
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
如果有人可以指出我的解决方法,我将非常感激!
答案 0 :(得分:0)
您可以使用布尔条件过滤DataFrame,以检查列中是否存在任何单词,如下所示:
# Setup:
tweet_df = pd.DataFrame({"Tweet": ["Word ...", "something else", "blah Word2"]})
TweetsCheckList = ["Word", "Word2", "Word100"]
# Solution:
conditions = False
for w in TweetsCheckList:
conditions = conditions | (tweet_df["Tweet"].str.contains(w))
tweet_df.loc[conditions]