Python 尝试从整个列中减去列的最小值时出现奇怪错误
当我试图从列本身减去pandas中一列的min时,我得到了一个奇怪的错误 我的代码如下所示:Python 尝试从整个列中减去列的最小值时出现奇怪错误,python,pandas,Python,Pandas,当我试图从列本身减去pandas中一列的min时,我得到了一个奇怪的错误 我的代码如下所示: self.portfolio.number = self.portfolio.number - self.portfolio.number.min() dataframe本身是类的成员数据-不确定这是否与问题相关(假设不是) 错误如下: ValueError: Buffer has wrong number of dimensions (expected 1, got 0) 我在stack over
self.portfolio.number = self.portfolio.number - self.portfolio.number.min()
dataframe本身是类的成员数据-不确定这是否与问题相关(假设不是)
错误如下:
ValueError: Buffer has wrong number of dimensions (expected 1, got 0)
我在stack overflow上看到过两个类似的错误。我已经检查过该列没有重复,也没有重复。任何帮助都将不胜感激。好的,我知道了。必须将我的代码更改为:
self.portfolio.loc[:, 'number'] = self.portfolio['number'].sub(self.portfolio['number'].min())
这是可行的,但我不知道为什么。如果有人能启发我,我将不胜感激。如果这个答案看起来有点不对劲,如果您能提供更多关于正在进行的数据结构的信息,那将非常有帮助 然而,我相信这些东西会对你有用
import pandas as pd
data = {'number': [42, 52, 36, 24, 73,4, 24, 31, 2, 3, 25, 94, 57, 62, 70]}
df = pd.DataFrame(data)
df['number'] - df['number'].min()
self.portfolio['number'].sub(self.portfolio['number'].min())
谢谢@ksooklall,成功了。你知道为什么我原来的路线不起作用吗?在我的代码中的其他地方工作得非常好抱歉,我错了,这实际上不起作用。self
是您的pandas.DataFrame,还是在其他类声明中?列名称是什么,因为对于一个系列来说没有number
属性,这是我理解代码的唯一方法。在这种情况下,最好发布一个小样本数据。“self”是指向类本身的指针;上述代码行位于类的函数中。dataframe“portfolio”是该类的成员数据。因此self.portfolio是数据帧,number是列名。希望这有帮助。