在Python中按其他列筛选数据列

在Python中按其他列筛选数据列,python,pandas,Python,Pandas,我正在分析tweet,我有一个数据帧df1 这有一个单一变量和tweet的文本,我还有另一个数据帧df2,它包含两个变量,第一个是带有情绪的单词,第二个是带有情绪值的单词 我想创建一个新的数据框架,它只提取tweet,在tweet中找到这种感觉的词,并将它的价值放在上面 print(df1) 0 @Brenamae_ I WHALE SLAP YOUR FIN AND TELL YOU ... 1 Metin Şentürk Twitterda @metinsent

我正在分析tweet,我有一个数据帧
df1
这有一个单一变量和tweet的文本,我还有另一个数据帧
df2
,它包含两个变量,第一个是带有情绪的单词,第二个是带有情绪值的单词

我想创建一个新的数据框架,它只提取tweet,在tweet中找到这种感觉的词,并将它的价值放在上面

print(df1)
    0     @Brenamae_ I WHALE SLAP YOUR FIN AND TELL YOU ...
    1    Metin Şentürk Twitterda @metinsenturk MUHTEŞEM...
    2    RT @byunghns: 
First DF:
name: dfTweet
columns: [tweet]

Second DF:
name: dfSentiment
columns: [sentiment, value]

newDF = pd.DataFrame(columns = [tweet, value])
indexSentTweet = [] 
    
for indexSent, sent in enumerate(dfSentiment):
    indexValueTweet = [[dfTweet['tweet'].iloc[index], dfSentiment['value'].iloc[index]] for index, x in enumerate(dfTweet['tweet'].str.contains(sent)) if x] # List comprehension to reduce the number of "for".

newDF = newDF.append(pd.DataFrame(indexValueTweet, columns = ['tweet', 'value']))
打印(df1)
0@Brenamae_ui鲸鱼拍打你的鳍然后告诉你。。。
1 MetinŞentürk Twitterda@metinsenturk MUHTEŞEM。。。
2 RT@byunghns:
我更改了列名以便于理解


我更改了列名以便于理解。

我不知道如何从df1创建df2,这些单词都不是there@Kenan:这可能是一个片段,实际的数据帧更长。(因为我们在df1中看到至少10个非停止字,所以df2必须长于10行。)Esteban:您需要将
df1
中每行的字符串拆分为一个列表或数组,可能还需要执行小写、标点符号删除和排除停止字。参见例如,或。有很多教程和博客,但要求它们是离题的。你能给我们一个合适的df2可复制的例子()吗,因为“放弃”、“放弃”、“绑架”在你的df1中的任何地方都不会出现?这个问题没有很好的定义(“需要澄清”),如果来自df1的句子包含来自df2的多个具有不同情绪的单词,您希望指定什么值?(例如,如果“whale”、“slap”、“tell”都出现在df2中,并且具有不同的情绪,该怎么办?您想要平均值吗?该行中所有情绪值的列表或数组?)我不知道df2是如何从df1创建的,这些词都不是there@Kenan:这可能是一个片段,实际的数据帧更长。(因为我们在df1中看到至少10个非停止字,所以df2必须长于10行。)Esteban:您需要将
df1
中每行的字符串拆分为一个列表或数组,可能还需要执行小写、标点符号删除和排除停止字。参见例如,或。有很多教程和博客,但要求它们是离题的。你能给我们一个合适的df2可复制的例子()吗,因为“放弃”、“放弃”、“绑架”在你的df1中的任何地方都不会出现?这个问题没有很好的定义(“需要澄清”),如果来自df1的句子包含来自df2的多个具有不同情绪的单词,您希望指定什么值?(例如,如果“whale”、“slap”、“tell”都出现在df2中,并且有不同的情绪?您想要平均值吗?该行中所有情绪值的列表或数组?)我尝试使用您的代码,但没有执行循环。我将练习及其原始数据集上载到我的存储库中@EstebanMadrigal,我建议您更新您的问题,在github中添加代码,以确保信息不会消失。在代码的第11行添加以下代码dfTweet=pd.DataFrame(dfTweet)。再试一次,检查它是否有效。我在这里进行了测试,没有发现任何问题。我还在我的答案newDF=newDF.append(pd.DataFrame(indexValueTweet,columns=['tweet','value'])中升级了代码。我试图使用您的代码,但没有执行循环。我将练习及其原始数据集上载到我的存储库中@EstebanMadrigal,我建议您更新您的问题,在github中添加代码,以确保信息不会消失。在代码的第11行添加以下代码dfTweet=pd.DataFrame(dfTweet)。再试一次,检查它是否有效。我在这里进行了测试,没有发现任何问题。我还在我的答案newDF=newDF.append(pd.DataFrame(indexValueTweet,columns=['tweet','value'])中增加了代码