我的問題是,我正在嘗試創建柱狀圖,但輸出不正確。如何使用Pandas和Matplotlib.pyplot,從字典列表中生成正確的柱狀圖
我有一個詞典的列表。
每個字典包含與來自Twitter的數千個推文相關的所有數據和屬性。每個字典都包含以下屬性:鍵值組合,包括推文內容,推文人員的屏幕名稱,推文的語言,推文的來源國等等。
要創建我的語言屬性的條形圖,我有一個列表理解,試圖讀取列表中的熊貓數據框,並將數據輸出爲帶有5個頻率條的條形圖,用於每個最常用的5個頻率條我的推文列表中的語言。
這裏是我的語言柱狀圖代碼(注意,我的包含各鳴叫詞典列表被稱爲tweets_data):
tweets_df = pd.DataFrame()
tweets_df['lang'] = map(lambda tweet: tweet['lang'], tweets_data)
tweets_by_lang = tweets_df['lang'].value_counts()
fig, ax = plt.subplots()
ax.tick_params(axis='x', labelsize=15)
ax.tick_params(axis='y', labelsize=10)
ax.set_xlabel('Languages', fontsize=15)
ax.set_ylabel('Number of tweets' , fontsize=15)
ax.set_title('Top 5 languages', fontsize=15, fontweight='bold')
tweets_by_lang[:5].plot(ax=ax, kind='bar', color='red')
正如我所說的,我應該得到5個酒吧,一個用於我的數據中前五種語言中的每一種。相反,我得到下面的圖表。
問題出在這裏:'tweets_df ['lang'] = map(...)'。 'tweets_data'看起來像什麼?它是什麼樣的對象?如果它是一個數據框,爲什麼你映射它而不是僅僅使用'tweets_data ['lang'] .value_counts()'? – ASGM
tweets_data是一個列表,列表中的每個項目都是一個字典。每個字典包含單個推文的所有數據。當我嘗試你的tweets_data ['lang']的建議。value_counts() - 我得到錯誤「TypeError:列表索引必須是整數或切片,而不是str。」 – TJE
'print tweets_df ['lang']'的輸出是什麼樣的? – ASGM