Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/293.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_Pandas_Object_Mean - Fatal编程技术网

Python 带对象的数据帧平均值

Python 带对象的数据帧平均值,python,pandas,object,mean,Python,Pandas,Object,Mean,我有一个带有2列nbr和tag的数据框。Nbr包含整数和标记包含标记对象 我想得到所有标记对象的平均值(使用value属性,结果是一个具有该值的新标记) 对于dataframe.add我有一个将\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu。 例如: 但是对于frame.tag.mean()我得到了这个错误TypeError:无法转换成数字。 Pandas首先尝试将对象转换为浮点:float(x),如果

我有一个带有2列nbr和tag的数据框。Nbr包含整数和标记包含标记对象

我想得到所有标记对象的平均值(使用value属性,结果是一个具有该值的新标记)

对于
dataframe.add
我有一个将
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu。
例如:

但是对于
frame.tag.mean()
我得到了这个错误
TypeError:无法转换成数字。
Pandas首先尝试将对象转换为浮点:
float(x)
,如果失败,则尝试此:
x=complex(x)

我的问题是,通过向标记类添加一个方法(就像我对
\uuuu add\uu
所做的那样),它们可以使
浮动(tag\u object)
复杂(tag\u object)
返回value属性


提前感谢。

查看源代码,熊猫的平均值似乎将结果强制为数字类型

您可以通过添加to
标记来接近:

import pandas as pd

class Tag(object):
    def __init__(self, value):
        self.value = value
    def __add__(self, other):
        return Tag(self.value + other.value)
    def __float__(self):
        return float(self.value)
一旦你这么做了,你就会

a = Tag(2)
b = Tag(8)
frame = pd.DataFrame({
    'tag': [a, b],
    'nbr': [3, 6]
})
new_tag = frame.tag.mean()
>>> print(new_tag)
5.0

请注意,这并不完全符合您的要求(它不会创建一个值为5.0的
标记
——Pandas希望结果为数字类型)。

是否要获取所有相等标记对象的平均值?然后尝试frame.groupby('tag').mean()否我想知道所有标记对象的value属性的平均值您正在数据帧中引入一种不同的类型,即用户定义的标记对象(它本身就是类对象!)。您的示例看起来非常简单,因此看起来像。提供更多信息。标签到底是什么?
a = Tag(2)
b = Tag(8)
frame = pd.DataFrame({
    'tag': [a, b],
    'nbr': [3, 6]
})
new_tag = frame.tag.mean()
>>> print(new_tag)
5.0