Подсчитайте частоту записей в столбце панд, затем нанесите их на график с помощью линейной метки оси X - PullRequest
0 голосов
/ 17 октября 2018

У меня есть следующий столбец панд:

FuncGroup
ABC
ABC
ABC
ABC
BCD
BCD
BCD
SDS
SDS
ABC
BCD
SDS
BCD

, и я хочу получить этот ожидаемый результат в панде dataframe:

pd['FunctionGroup','FunctionCount']
ABC  4
BCD  5
SDS  3

Как это сделать, это необходимо для графической цели.

редактировать 1: обращаясь к ответам ниже, я сделал некоторую модификацию исходного кода для построения графика с использованием сюжета.Теперь все подсчеты построены, но метка оси X не приходит с использованием этого метода, поэтому я хочу, чтобы метка и счет были сохранены в pd.

ссылочный код

otrace1 =go.Bar(
    #x=stock_opt_pe.index
    x=datalist['Function group'].nunique(),
    y=datalist['Function group'].value_counts(),
    text=datalistFg, # dont know what to give here to get a X axis label
    textposition = 'auto',
    #xaxis-type (enumerated: “-” | “linear” | “log” | “date” | “category” )
    #xaxis-type (enumerated: “-” | “linear” | “log” | “date” | “category” )
    #name='Function Group Vx RespPerson',
    #orientation = 'v',
    #marker = dict(
        #color = 'rgba(224, 224, 224, 0.6)',
        #line = dict(
            #color = 'rgba(246, 250, 206, 1.0)',
            #color = 'rgb(60, 60, 60)',
            #width = 0)
    #)
)

Ответы [ 2 ]

0 голосов
/ 17 октября 2018

Возможно, вы ищете значения значений, которые похожи на collections counter.

df['FuncGroup'].value_counts()

Для построения графика посмотрите на этот пример:

import pandas as pd

df = pd.DataFrame({
    'FuncGroup': ['ABC','ABC','BCD']
})

s = df['FuncGroup'].value_counts()
s.plot(kind='bar')

dfout = df['FuncGroup'].value_counts().reset_index()
print(dfout)

#  index  FuncGroup
#0   ABC          2
#1   BCD          1

Возвращает:

enter image description here

0 голосов
/ 17 октября 2018

Проверьте, работает ли это для вас:

import pandas as pd
import plotly.plotly as py

Пример df:

raw =pd.DataFrame({'FuncGroup':[
'ABC',
'ABC',
'ABC',
'ABC',
'BCD',
'BCD',
'BCD',
'SDS',
'SDS',
'ABC',
'BCD',
'SDS',
'BCD']})

Создание нового df со счетчиком:

s = raw['FuncGroup'].value_counts() ## Counts the occurrence of unqiue elements and stores in a variable called "s" which is series type
new = pd.DataFrame({'FuncGroup':s.index, 'Count':s.values})  ## Converting series type to pandas df as plotly accepts dataframe as input. The two columns of df is FuncGroup which is being made by index of series and new variable called count which is made by values of series s.

Создание гистограммы для построения графика:

py.iplot(new, filename='basic-bar')
...