Python 将基于统计信息的新列添加到数据帧

Python 将基于统计信息的新列添加到数据帧,python,pandas,function,if-statement,statistics,Python,Pandas,Function,If Statement,Statistics,这是我的第一个问题。我想建立一个统计模型。我有一个数据框,我想在这个数据框中添加一列。我想让这个专栏展示一些统计数据。 例如,我的数据帧是这样的 例如,我想添加一个新列。我想让这个专栏显示“车红女孩”的D值大于所有车的D值的平均值。我应该怎么做?我应该用哪种方法来建立这个统计模型。我有大量数据,无法手动计算所有汽车或自行车的平均值。我需要一个带有if-else语句的函数,并添加一列来描述行的D大于或小于平均值 我的代码是这样的,但我得到了关键错误0 for b in list(df.A.uni

这是我的第一个问题。我想建立一个统计模型。我有一个数据框,我想在这个数据框中添加一列。我想让这个专栏展示一些统计数据。 例如,我的数据帧是这样的

例如,我想添加一个新列。我想让这个专栏显示“车红女孩”的D值大于所有车的D值的平均值。我应该怎么做?我应该用哪种方法来建立这个统计模型。我有大量数据,无法手动计算所有汽车或自行车的平均值。我需要一个带有if-else语句的函数,并添加一列来描述行的D大于或小于平均值

我的代码是这样的,但我得到了关键错误0

for b in list(df.A.unique()):
    for i in range(len(df.loc[df.A == b])):
        if df.loc[df.A == b, "D"][i] >= df.loc[df.A == b,"D"].mean():
            df.loc[df.A== b]["E"][i] = "Bigger"

这可以通过使用
pandas
库来实现。假设,
DataFrame
存储在变量
df

步骤1-计算列的平均值

步骤2-获取列值大于列平均值的索引

步骤3-将这些索引中的值设置为True

mean_D=df.loc[:,"D"].mean()
df.loc[:,"E"]=False #Set Initially to 'False' implying D's mean is less than column mean
indices=df[df.loc[:,"D"]>mean_D].index
df.loc[indices,"E"]=True
编辑1

  • 把每个词的意思储存在字典里

  • 计算值大于平均值的相应指数(单独计算)

  • 将索引设置为
    True

  • 输出

    输出数据帧

         A      B     C    D      E
    0   car    red  girl   8   True
    1   car    red   boy   7  False
    2   car   blue   boy   6  False
    3  bike  black   boy   9   True
    4  bike  white  girl  10   True
    5  bike    red  girl   7  False
    
    输出具有相应平均值的词典

    {'bike': 8.666666666666666, 'car': 7.0}
    

    嗨,阿南特,谢谢你的回答。也许我无法正确地解释自己。你的代码正在工作是的,但不是我想要的方式。例如,在我的示例数据中,汽车的D7的平均值,我想要基于汽车的平均值的新列。自行车的平均值为8.6,我想在自行车平均值的基础上增加新的专栏。我希望你也能在这方面帮助我。嗨,阿南特,谢谢你再次回答。但正如我在帖子中所说,我有一个非常大的数据,我应该建立一个统计模型。所以我无法单独计算方法:/Welcome to Stack Overflow!请仔细阅读,特别是。你在这里的最佳选择是做你的研究,搜索相关的话题,然后尝试一下。在做了更多的研究和搜索之后,发布一篇你的尝试的文章,并明确指出你的问题所在,这可以帮助你获得更好的答案。请不要粘贴指向你的
    代码/错误消息/数据框的链接。请阅读。
    
    {'bike': 8.666666666666666, 'car': 7.0}