如何在熊猫框架中显示 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 色调分析器的输出的主要内容,如果未能解决你的问题,请参考以下文章
PySpark:读取 pyspark 框架中的 csv 数据。为啥它在框架中显示特殊字符?除了使用熊猫之外,以表格形式显示的任何方式[重复]