python - 如何将函数 GROUPWISELY 应用于数据框的所有列? (在Python Pandas 中)

标签 python pandas dataframe pandas-groupby

如何“按组”将函数应用于数据框的每一列? IE。按一列的值进行分组并计算,例如表示每个组+其他列。预期的输出是带有索引的数据帧 - 不同组的名称,以及值 - 每个组+列的平均值

例如考虑:

df = pd.DataFrame(np.arange(16).reshape(4,4), columns=['A', 'B', 'C', 'D'])
df['group'] = ['a', 'a', 'b','b']


    A   B   C   D   group
0   0   1   2   3   a
1   4   5   6   7   a
2   8   9   10  11  b
3   12  13  14  15  b

我想计算例如np.mean 对于每一列,但是“按组”, 在该特定示例中,可以通过以下方式完成:

t = df.groupby('group').agg({'A': np.mean, 'B': np.mean, 'C': np.mean, 'D': np.mean })

    A   B   C   D
group               
a   2   3   4   5
b   10  11  12  13

但是,它需要显式使用列名 'A': np.mean、'B': np.mean、'C': np.mean、'D': np.mean 这对于我的任务来说是 Not Acceptable ,因为它们可以更改。

最佳答案

正如MaxU所评论的更简单的是groupby + GroupBy.mean :

df1 = df.groupby('group').mean()
print (df1)
        A   B   C   D
group                
a       2   3   4   5
b      10  11  12  13

如果需要索引中的列:

df1 = df.groupby('group', as_index=False).mean()
print (df1)
  group   A   B   C   D
0     a   2   3   4   5
1     b  10  11  12  13

关于python - 如何将函数 GROUPWISELY 应用于数据框的所有列? (在Python Pandas 中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48744490/

相关文章:

python - 多项式NB : ValueError

python - python 字符串的 CRC32 哈希

python - Pandas read_hdf 按日期和时间范围查询

python - 恢复频率表

python - 为什么测试 `NaN == NaN` 不适用于从 pandas dataFrame 中删除?

python - 二元分类问题的准确率高得令人怀疑

python - 将函数传递给数据框中的列 - Python

r - 匹配两个数据框并替换其中一个中的相应条目

r - 在向量列表中,将每个向量转换为字符串,然后转换为 R 中的数据帧

javascript - 使用 python 打开网络浏览器(在 Windows 上),触发 javascript 操作,并获取 html 内容?