groupby函数的一系列查询

A series query on groupby function

我有一个名为 active 的数据框,它有 10 个唯一的 POS 列值。 然后我将 POS 值分组并平均标准化 OPW 列,然后将标准化值存储为单独的列 ['resid'] 如果我对 POS 值进行分组,新活动数据框的 POS 列不应该只包含唯一的 POS 值吗??

例如:

df2 = pd.DataFrame({'X' : ['B', 'B', 'A', 'A'], 'Y' : [1, 2, 3, 4]})
print df2

df2.groupby(['X']).sum()

我得到这样的输出:

    Y
X   
A   7
B   3

在我的示例中,我不应该得到一个仅包含唯一 Pos 值的列,如下所述吗??

POS 其他栏目
Rf 值
2B 值
LF 值
2B 值
OF 值

如果没有实际数据,我不能 100% 确定,但我很确定这里的问题是您没有汇总数据。

让我们一步一步地完成分组。

当您执行 active.groupby('POS') 时,实际发生的是您正在为每个唯一的 POS 切片数据帧,并将这些切片中的每一个依次传递给应用的函数。

您可以使用 get_group 更好地了解正在发生的事情(例如:active.groupby('POS').get_group('RF') )

因此,您将 meanNormalizeOPW 函数应用于每个切片。该函数为传递的数据帧 的每一行创建列 'resid' 的平均归一化值。而你 return 那个数据框,以与传递的形状相似的形状结尾。

因此,如果您只是将聚合函数添加到 returned df,它应该可以正常工作。我猜你想要一个平均值,所以只需将 return df 更改为 return df.mean()