Python 将单个值存储为数据帧的属性而不是列有哪些缺点?
我遇到了一些基于数据帧计算单个值的代码,并将其存储为数据帧的属性,而不是单独的变量或新列 这里有一个例子。投资组合有两种证券,每种证券都有价格和数量Python 将单个值存储为数据帧的属性而不是列有哪些缺点?,python,python-3.x,pandas,dataframe,Python,Python 3.x,Pandas,Dataframe,我遇到了一些基于数据帧计算单个值的代码,并将其存储为数据帧的属性,而不是单独的变量或新列 这里有一个例子。投资组合有两种证券,每种证券都有价格和数量 import pandas data = {"Prices" : [83.28, 107.38], "Quantities" : [125.926, 7241.531]} portfolio = pandas.DataFrame(data, index = ["BND", "VTI"], columns = ["Prices", "Quantit
import pandas
data = {"Prices" : [83.28, 107.38], "Quantities" : [125.926, 7241.531]}
portfolio = pandas.DataFrame(data, index = ["BND", "VTI"], columns = ["Prices", "Quantities"])
portfolio.value = portfolio["Prices"].dot(portfolio["Quantities"])
以这种方式存储值
而不是作为单独的变量或新的数据列有什么好处吗?就是
portfolio["Value"] = portfolio["Prices"].dot(portfolio["Quantities"])
从技术上讲,后者可能会占用更多的内存,因为数据集中的每个观察值都会重复,但实际上,这些投资组合大约有1000种证券,因此这不是问题
将该值指定为数据帧的一个属性无法经受酸洗,但这是否还有其他缺点?有什么隐藏的好处吗?我猜这是一个编码错误。我以前做过这个 假设:
df = pd.DataFrame([1], ['x'])
我想我有:
df['y'] = 2
但实际上没有
稍后,我:
df.y = df.x.sum()
如果我真的做了df['y']=2
,df.y
会指向序列df['y']
。但是因为我没有,df.y=df.x.sum()
将df['x']
的标量和赋给df
的属性y
换句话说,我看不到任何好处