使用agg函数时的pandas valueError

时间:2019-03-12 03:45:13

标签: python pandas data-science

我认识了熊猫,遇到了一个我找不到答案的问题。

我正在使用https://raw.githubusercontent.com/Shreyas3108/house-price-prediction/master/kc_house_data.csv

处可用的数据集

然后我正在运行函数df.describe(),该函数将输出所有应有的内容而没有问题。

由于我目前仅对最小/最大的最小,最大和差异感兴趣。我正在使用pandas的df.agg函数通过运行以下代码来获取每一列的最小值/最大值

df.agg([min, max],axis=0)

运行此命令时,出现错误:

    ~/.virtualenvs/cv/lib/python3.6/site-packages/pandas/core/base.py in _aggregate_multiple_funcs(self, arg, _level, _axis)
    615         # if we are empty
    616         if not len(results):
--> 617             raise ValueError("no results")
    618 
    619         try:

ValueError: no results

df.describe()能够找到每一列的最小值/最大值而没有问题时,我不确定为什么会出现此错误。我一直在寻找空白和NaN值,也在寻找字符串以查看它们是否产生了问题,而我的数据似乎没有它们。

如果能指出我要去哪里的地方,我将不胜感激。

2 个答案:

答案 0 :(得分:0)

问题可能不在于df.agg,而在于df本身。您可以先致电df,然后再致电df.agg,看看它是否确实包含数据。

答案 1 :(得分:0)

我尝试了下面的代码,并且能够成功完成您在问题中提到的内容。

df = pd.read_csv('https://raw.githubusercontent.com/Shreyas3108/house-price-prediction/master/kc_house_data.csv')
df = df.agg([min, max]).T
CLM = ['max', 'min']
df = (df.drop(CLM, axis=1)
         .join(df[CLM].apply(pd.to_numeric, errors='coerce')))

df = num_df[num_df[CLM].notnull().all(axis=1)]
df['Diff'] = df['max'] - df['min']
df

请尝试一下,让我知道这是否适合您。