Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将单个值存储为数据帧的属性而不是列有哪些缺点?_Python_Python 3.x_Pandas_Dataframe - Fatal编程技术网

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


换句话说,我看不到任何好处