PANDAS数据结构功能

时间:2018-04-13 01:05:43

标签: python pandas dictionary dataframe

我正在编写一个名为series_from_counts(count_dict)的函数:

  • 以字典对象形式输入前一个函数返回值的格式作为输入

  • 创建并返回名为Count

  • 的系列
  • 索引是字母

  • 还使用seaborn.barplot为每个字母绘制一个带条形图的条形图

并使用下面给出的两行:

sns.barplot() # fill in the parentheses
plt.show() # do not change

我的代码是:

def series_from_counts(count_dict):
    dictionary = count_dict
    data = dictionary
    names = list(data.keys())
    values = list(data.values())
    Count = pd.Series(data, index=keys)
    index = pd.set_index('letter')
    sns.barplot(range(len(data)),values,tick_label=names))
    plt.show() # do not change

我需要在代码中更改以生成正确的条形图,该条形图将字典作为输入并返回一个系列,其中字典中的字母是索引,而计数(整数)存储在系列中。系列被重命名为“Count”,其中该函数生成一个条形图,显示每个字母的计数,并生成一个垂直方向的图形,标题为“逐字逐字”。

预期输出如下:

例如,如果输入字典是:

{'g': 3, 'c': 1, 'f': 1}

输出系列将是:

c1
f1
g3
Name: Count, dtype: int64

1 个答案:

答案 0 :(得分:1)

让我试着重新陈述你的问题:

你有一个字典,字母为键,整数为值。您想要生成一个条形图,其中字典键是标签,字典值是条形的高度。

如果那是对的,以下将做你想做的事:

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

d = {'g': 3, 'c': 1, 'f': 1}
s = pd.Series(d)
sns.barplot(s.index, s.values).set_title('Word count by letter')
plt.show()