我从json推文文件创建了以下数据框。

tweets['text'] =    list(map(lambda tweet: tweet['text'], tweets_data))
tweets['date'] =    list(map(lambda tweet: tweet['created_at'], tweets_data))
tweets['lang'] =    list(map(lambda tweet: tweet['lang'], tweets_data))
tweets['place_type'] = list(map(lambda tweet: tweet['place']['place_type'] if tweet['place'] != None else None, tweets_data))
tweets['place_name'] = list(map(lambda tweet: tweet['place']['full_name'] if tweet['place'] != None else None, tweets_data))
tweets['country'] = list(map(lambda tweet: tweet['place']['country'] if tweet['place'] != None else None, tweets_data))
tweets['hashtags'] =  list(map(lambda tweet: tweet['entities']['hashtags'], tweets_data))

hashtags列的当前输出如下:

"[{'text': 'NOJUSTICE', 'indices': [62, 72]}, {'text': 'TrumpPence', 'indices': [93, 104]}]"

我正在尝试创建一个仅包含主题标签的新列。 例如:

虚假与特朗普

我尝试了以下代码:

ht=[]
for s in range(len(tweets['hashtags'])):
    hasht=[]
    for t in range(len(tweets.hashtags[s])):
        hasht.append(tweets['hashtags'][s][t]['text'])
        t=t+1
    ht.append(hasht)
    s=s+1
tweets['HT']=zip(ht)

并且我收到以下错误:

TypeError                                 Traceback (most recent call last)
<ipython-input-38-9780008354d7> in <module>
      3     hasht=[]
      4     for t in range(len(tweets.hashtags[s])):
----> 5         hasht.append(tweets['hashtags'][s][t]['text'])
      6         t=t+1
      7     ht.append(hasht)

TypeError: string indices must be integers

样本csv文件

我希望主题列仅包含主题索引,而不包含索引和其他内容

更新:我使用以下建议,并得到相同的错误

tweets['hashtags'].apply(lambda x: [d['text'] for d in x])

#1楼 票数:0

您可以使用pandas.Series.apply来解析主题标签,如下所示:

tweets['hashtags'].apply(lambda x: [d['text'] for d in x])

然后,您需要将输出存储在数据框的新列中。 此匿名函数将值作为输入,并遍历列表中的每个字典(如果非空),然后在键:“文本”中创建值的新列表。 输出如下所示:

0                                                  []
1                             [NOJUSTICE, TrumpPence]
2                                                  []
3                                                  []
4                          [CNN, newday, Trump, ISIS]
5                                        [NeverTrump]
6    [Trump2016, TrumpPence16, MakeAmericaGreatAgain]
7                                                  []
8                                                  []
9                                                  []
dtype: object

  ask by ahmad noori translate from so

未解决问题?本站智能推荐:

2回复

根据python中辅助列的值添加和平均一组列

我有一个具有以下值的数据集: 如果大多数标签(LabelA、LabelB 和 LabelC)为 1,Final_label 将为 1,反之亦然。 我想计算一个名为“Polarity”的列,它具有以下定义: 如果 Final_label = 1,Polarity 是所有标签也为 1 的“Positi
1回复

如何在数据框中添加具有计算值的另一列

我有一个新闻数据集,并且正在承载NLP。 我现在有2个函数,一个函数计算相似性,另一个函数计算情感,这两个函数都从数据框中获取输入,我想做的就是在数据帧中创建另一列,并使用计算出的值来计算相似度和情感(位置/ NEG) 功能如下 输出: 码: 输出:
3回复

用3列重塑熊猫数据框

我有以下代码: 这创造了这个: 我只想有 2 列,1 列带有情绪,其他列带有类别,这应该是特定的情绪,即结果应该是: 情绪 类别 美国广播公司 积极的 我的 消极的 点 中性的
1回复

Python3Pandas:如何找到一列的行元素子集与另一列的元素之间的关系?

我不确定我是否正确表达了这个问题。 如果我没有,请告诉我,我会相应地更正。 我手头的问题是我有一个以下格式的电影评论的熊猫数据框: 我想要做的是在“句子”中设置一组所有单个单词,并计算它与“感觉”列相关的使用次数。 例如: 是否有我可以使用的熊猫命令链?
1回复

如何将来自oseti的情绪值附加到Pandas数据框?

第一次在这里发帖! 在与 mecab 和编码斗争之后,我让 oseti 为日语情感分析工作,其中 oseti.Analyzer() 接受一个字符串并打印一个每个句子一个值的列表: (抱歉,不能 100% 确定它是否打印或只是返回列表) 我有一个大约有 10,000 行的 Pandas 数据框,并且
1回复

将情感附加到数据框中的每个单词

我对推文进行了情感分析,但现在我必须将情感附加到推文文本中的每个单词。 我的情感分析基于字典中出现的单词总和。 我希望这个例子可以帮助你。 我尝试使用此功能,但在这里不起作用。 例子: 想要的结果:
1回复

如何迭代列表并通过Pandas数据框列获取情绪?

我有一个只有一列的数据框,并且只有该列中的注释。 输出 : 我正在使用拥抱面部情感分类器,例如返回评论的情感 输出是: 只获取标签: 输出是: 如何在分类器的数据框中运行所有给定的评论并返回输出? 我试过上面的代码,但它返回错误
1回复

从某些列中提取数据并生成新行

我有一个熊猫数据框 我想要的输出将是: 有什么方便的方法可以使用吗?