Построение графика на python с использованием общих значений в словаре

#python #pandas #dictionary #matplotlib #plot

#python #pandas #словарь #matplotlib #построение

Вопрос:

Как я могу визуально представить общие ключи при выборе значения. Я создаю форму, в которой пользователь, скажем, выберет значение 'john' . Я хочу построить общие ключи ‘, ‘b’ и ‘c’. Предложения о том, как подойти к этой проблеме, будут очень полезны.

 d = {
'a': ['john', 'doe', 'jane'], 
'b': ['james', 'danny', 'john'], 
'C':['john', 'scott', 'jane'],
}
  

Комментарии:

1. Вы хотите построить график для john ?

2. @JoeR Да! визуально покажите, что ‘john’ присутствует в a, b и c.

Ответ №1:

Решение с Series.plot.bar :

 import pandas as pd
import matplotlib.pyplot as plt


df = pd.DataFrame({
'a': ['john', 'doe', 'jane'], 
'b': ['james', 'danny', 'john'], 
'c':['john', 'scott', 'jane'],
})

#get boolean mask by condition
print (df == 'john')
       a      b      c
0   True  False   True
1  False  False  False
2  False   True  False

#sum values True
print ((df == 'john').sum())
a    1
b    1
c    1
dtype: int64

(df == 'john').sum().plot.bar()
plt.show()
  

График

При необходимости показать все данные:

 df1 = df.apply(pd.value_counts).T
print (df1)
   danny  doe  james  jane  john  scott
a    NaN  1.0    NaN   1.0   1.0    NaN
b    1.0  NaN    1.0   NaN   1.0    NaN
c    NaN  NaN    NaN   1.0   1.0    1.0

df1.plot.bar()
plt.show()
  

график1

Ответ №2:

Вы можете создать фрейм данных из словаря:

 import pandas as pd
import matplotlib.pyplot as plt
plt.style.use('ggplot')

df = pd.DataFrame({
'a': ['john', 'doe', 'jane'], 
'b': ['james', 'danny', 'john'], 
'c':['john', 'scott', 'jane'],
})
  

Тогда вы можете просто построить график john следующим образом:

 df.apply(lambda x: (x == 'john').sum()).plot(kind='bar')
  

введите описание изображения здесь

Поскольку строка john встречается только один раз в каждом столбце, все столбцы имеют одинаковую длину.