我的问题是我正在尝试创建条形图,但输出不正确。
我有一个词典列表。
每个字典都包含与Twitter上数千条推文相关的所有数据和属性。每个字典都包含属性作为键:值组合,包括推文内容,推文人员的屏幕名称,推文语言,推文来源国等等。
要创建语言属性的条形图,我有一个列表推导,尝试在列表中读取Pandas数据帧,并将数据输出为条形图,每个最常用的5种语言有5个频率条在我的推文列表中。
以下是我的语言栏图的代码(请注意,我的每条推文的词典列表名为tweets_data):
var imgView = NSImageView(frame: NSRect(origin: CGPoint(x: x, y: 0), size: img.size))
x += 100
答案 0 :(得分:2)
你的问题在这里:
tweets_df['lang'] = map(lambda tweet: tweet['lang'], tweets_data)
正如您的评论所暗示的那样,问题取决于从Python 2到3的变化。在Python 2中,map()
返回一个列表。但是在Python 3中,map()
returns an iterator。提示是tweets_df['lang'].value_counts()
只有一个值,它是<map ... >
迭代器对象的唯一值。
在Python 2或3中,您可以改为使用列表推导:
tweet_by_lang = pd.Series([tweet['lang'] for tweet in tweets_data]).value_counts()
或者在Python 3中,您可以按照上面链接的答案关注@ Triptych的建议,并将map()
包裹在list()
中:
tweets_df['lang'] = list(map(lambda tweet: tweet['lang'], tweets_data))