为什么我的Python函数调用函数后会创建None类型?

时间:2019-02-07 17:44:12

标签: python pandas matplotlib

我想知道为什么我的函数返回无类型。我似乎找不到任何答案,而且我是Python的新手。我希望能够在计算和绘制直方图中使用此值。我的代码如下:

def mean_calc_d(data_col):
  mean_vals = df[data_col].value_counts().keys().tolist()
  mean_counts = df[data_col].value_counts().tolist()
  mean_dict = dict(zip(mean_vals, mean_counts))
  print(mean_dict)

mean_calc_d("month")

我得到的输出是一个不错的字典:

{'aug': 184, 'sep': 172, 'mar': 54, 'jul': 32, 'feb': 20, 'jun': 17, 'oct': 15, 'dec': 9, 'apr': 9, 'jan': 2, 'may': 2, 'nov': 1`}

顺便说一句,在此之前,我使用以下代码调用csv:

dataframe = pd.read_csv('https://archive.ics.uci.edu/ml/machine-learning-databases/forest-fires/forestfires.csv')
df = dataframe #I do this to make a copy in case I destroy any elements inadvertantly 

我遇到的问题是我的函数,如果检查类型,它说它是None类型,这意味着我无法使用任何值来计算除获得的输出之外的任何其他值,因为它是一个无类型。我经常遇到的错误是:

TypeError: unsupported operand type(s) for *: 'NoneType' and 'float'

我在做什么错?为什么我将其返回为None类型?我对此很陌生,在其他线程中似乎找不到合适的答案。

在此先感谢您的帮助!

1 个答案:

答案 0 :(得分:3)

mean_calc_d不返回任何内容。只需将return mean_dict放在其底部即可。