簡體   English   中英

Plot 使用 Plotly 的 Pandas df 列的計數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM