排序:'DataFrame'对象没有属性'sort'

时间:2017-10-09 09:57:08

标签: python pandas

代码是用python 3.4编写的,但我想在python 3.7上运行它。我正在使用Jupyter笔记本运行。我可以在Jupyter中创建一个环境并在旧版本的pandas中运行代码(例如0.16)吗?

--> 210             tmpvals[n] = find_non_overlapping_sample(
    211                 df.sort_index(key, ascending=phase).head(600).index, prd = no_overlap_prd)        
    212 

~\Anaconda3\lib\site-packages\pandas\core\generic.py in __getattr__(self, name)
   3079             if name in self._info_axis:
   3080                 return self[name]
-> 3081             return object.__getattribute__(self, name)
   3082 
   3083     def __setattr__(self, name, value):

AttributeError: 'DataFrame' object has no attribute 'sort' `

即使我将sort更改为sort_indexsort_values。错误仍然存​​在。

这是函数(原始代码)。

def gen_keydates(df, key, seasonalData=False, no_overlap_prd = 365, chatty=True):

    tmpvals={}
    if seasonalData: # For DJF data use modified function
        for n, phase in enumerate([False, True]): # Maximum, Minimum Phase
            tmpvals[n] = findNonOverlappingSeasonSample(
                df.sort(key, ascending=phase).head(600).index, key=key)
    else:
        for n, phase in enumerate([False, True]): # Maximum, Minimum Phase
            tmpvals[n] = find_non_overlapping_sample(
                df.sort(key, ascending=phase).head(600).index, prd = no_overlap_prd)        
    compPhase ={}
    compPhase['max'] = tmpvals[0][0:11].order()
    compPhase['min'] = tmpvals[1][0:11].order()
    if chatty:
        print("Average for max/min sample of {0}: {1:2.3f} and {2:2.3f}".format(
            key,np.mean(df[key][compPhase['max']]),
            np.mean(df[key][compPhase['min']])))
    return compPhase`

1 个答案:

答案 0 :(得分:2)

排序方法已被弃用 你应该选择df.sort_values()或df.sort_index()方法。