如何在熊猫框架中显示 IBM 色调分析器的输出

Posted

技术标签:

【中文标题】如何在熊猫框架中显示 IBM 色调分析器的输出【英文标题】:How to display output of IBM tone analyzer in pandas frame 【发布时间】:2021-03-11 08:34:01 【问题描述】:

我的数据集具有以下特征:“description”、“word_count”、“char_count”、“stopwords”。功能“描述”的数据类型为包含一些文本的字符串。我正在对这个特性进行 IBM 音调分析,它给了我正确的输出,看起来像这样:

['document_tone': 'tones': ['score': 0.677676,
     'tone_id': 'analytical',
     'tone_name': 'Analytical'],
 'document_tone': 'tones': ['score': 0.620279,
     'tone_id': 'analytical',
     'tone_name': 'Analytical'],    

上面的代码如下:

result =[]
for i in new_df['description']:
   tone_analysis = ta.tone(
       'text': i,
     #  'application/json'
   ).get_result()
   result.append(tone_analysis)

我需要将上述输出保存在 pandas 数据框中。

【问题讨论】:

【参考方案1】:

Series.apply中使用lambda函数:

new_df['new'] = new_df['description'].apply(lambda i: ta.tone('text': i).get_result())

编辑:

def f(i):
    x = ta.tone('text': i).get_result()['document_tone']['tones']
    return pd.Series(x[0])


new_df = new_df.join(new_df['description'].apply(f).drop('tone_id', axis=1))
print (new_df)

如果需要还删除description 列:

new_df = new_df.join(new_df.pop('description').apply(f).drop('tone_id', axis=1))

【讨论】:

非常感谢,它以某种方式工作,输出来自数据帧,新特征为“新”,其值为:'document_tone': 'tones': ['score': 0.677676, 'tone_id': 'analytical', 'tone_name': 'Analytical'] 在每一行。我需要在两个功能中都输出为“score”和“tone_name”。 现在唯一剩下的问题是,由此创建的三个新特征,即:“score”、“tone_id”、“tone_name”都有相同的重复值,即:“0.615352”、“tentative”、 “暂定”分别。每行的值应该不同。 @Akhter - 如果检查 print(result) 它返回不重复的值? 当我打印(结果)时,值是唯一的。但是在熊猫框架中,它们也被重复,它需要最后一行的值被重复。 “score”、“tone_id”、“tone_name”这三个特征具有重复值,其余特征都很好。我只需要“score”和“tone_name”,每行中的值太独特了。

以上是关于如何在熊猫框架中显示 IBM 色调分析器的输出的主要内容,如果未能解决你的问题,请参考以下文章

如何在熊猫数据框输出中定义索引或点击行数?

C中最快的抖动/半色调库

Spring 框架的设计理念与设计模式分析

Spring 框架的设计理念与设计模式分析

PySpark:读取 pyspark 框架中的 csv 数据。为啥它在框架中显示特殊字符?除了使用熊猫之外,以表格形式显示的任何方式[重复]

Spring 框架的设计理念与设计模式分析