Python 如何过滤列包含列表中存储的值的数据帧?
大家好,我有个问题 我想问是否有人可以帮助我根据列表中的条目过滤出数据帧。我有一些单词我想检查它们是否存在于数据帧中存储的任何tweet中。我不确定这为什么不起作用,所以如果有人有任何指导,这将是非常有帮助的,谢谢 我的理解是,我将搜索数据帧的每一行 每次搜索一行时,我都会获取TweetsCheckList中的每个项目,并检查它是否在当前tweet中。如果是这样的话,我会将tweet附加到空数据帧中。为什么这不合适 更新: 我尝试了以下方法:Python 如何过滤列包含列表中存储的值的数据帧?,python,pandas,dataframe,Python,Pandas,Dataframe,大家好,我有个问题 我想问是否有人可以帮助我根据列表中的条目过滤出数据帧。我有一些单词我想检查它们是否存在于数据帧中存储的任何tweet中。我不确定这为什么不起作用,所以如果有人有任何指导,这将是非常有帮助的,谢谢 我的理解是,我将搜索数据帧的每一行 每次搜索一行时,我都会获取TweetsCheckList中的每个项目,并检查它是否在当前tweet中。如果是这样的话,我会将tweet附加到空数据帧中。为什么这不合适 更新: 我尝试了以下方法: """DataFram
"""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)
没有用…它告诉我:
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().
这回答了你的问题吗?
# 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]