[英]Plot the count of a Pandas df column using Plotly
我有一個 df 列,其中它的數據只是分類的(例如,[a,b,c,a,a,d,c,b 等])。 我想使用 plotly 計數條(條形圖)對 plot 這些數據的計數。
我已經使用df.groupby('<col_name>')['<col_name>'].count()
了數據的計數,但這會返回一個系列數據結構,所以我只會有計數數據(1-D )。
如何有效地得到 output 中的計數結果和對應的數據項?
我想得到這個 output 和 plot 使用 Plotly 的條形圖:
import plotly.express as px
fig = px.bar(count_df, x="<col_name>", y="count", color="count", title="----------")
fig.show()
應該能夠使用結果的.index 為您提供 x 軸的值和 y 軸的系列本身。
另外,我認為使用 df['col_name'].value_counts() 可能是您想要在這里使用的。
回答我自己的問題。
我通過將 value_counts(returns a Series) 的結果轉換為 pd DataFrame 找到了解決方案。 參考:所以問題和答案
import plotly.express as px
new_df = df['<col_name>'].value_counts().rename_axis('<col_name>').reset_index(name='counts')
fig = px.bar(new_df, x="<col_name>", y="counts", color="counts", title="----------")
fig.show()
沒有比這更有效的了:
df['x'].plot(kind = 'hist')
不,這不是 matplotlib,而是一個直接從 pandas dataframe 使用 Z2AEFDBC592954A306CA2 作為后端構建的圖形。 是的,太棒了!
import random
import pandas as pd
pd.options.plotting.backend = "plotly"
random.seed(7)
df = pd.DataFrame({'x':[random.choice(list('abcde')) for i in range(25)]})
fig = df['x'].plot(kind = 'hist')
fig.layout.bargap = 0
fig.show()
您可以使用hist()
輕松獲得它,例如:
df['<col_name>'].hist()
你也可以看到abs頻率。
另一種方法是:
df['<col_name>'].value_counts().plot(kind='bar')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.