我的数据帧代码不断收到“TypeError: 'numpy.ndarray' object is not callable”

时间:2021-07-29 17:31:15

标签: python dataframe

我一直在从 2D 图像中提取叶角并将它们放置在数据框中。我不明白为什么我不断收到代码的“TypeError: 'numpy.ndarray' object is not callable”。我运行了两次,它工作了,但它开始给我这个错误。

idx = list(df.keys())
values = list(df.values())

cols = [[], [], [], []]

for id, x in enumerate(values):

    for i in range(4):
    
        if len(values[id]) <= i:
            cols[i].append('NaN')
        
        else:
            cols[i].append(values[id][i])

newDf = zip(idx, col1, col2, col3, col4)
newDf = pd.DataFrame(newDf, columns = ['PlantName', 'Leaf1', 
'Leaf2','Leaf3','Leaf4'])
newDf.set_index('PlantName',inplace=True)
#Median values for the first four
newDf['Median1to4'] = newDf.median(axis = 1)

newDf

这是完整的错误消息:

TypeError                                 Traceback (most recent call last)
/tmp/ipykernel_6988/3872441964.py in <module>
     48 
     49 idx = list(df.keys())
---> 50 values = list(df.values())
     51 
     52 cols = [[], [], [], []]

2 个答案:

答案 0 :(得分:0)

问题出在第 50 行。应该是

values = list(df.values)

根据pandas,他们建议改用.to_numpy()

values = df.to_numpy()

答案 1 :(得分:0)

如果 df 是一个 Pandas 数据框。它是 df.values 不是 df.values() 。 Python 中的 callable 仅表示 ()call 一个函数。因此错误消息 xxxxxx object is not callable