【问题标题】:how to behave all data as a single group in pandas groupby如何在熊猫 groupby 中将所有数据视为一个组
【发布时间】:2021-12-28 00:49:05
【问题描述】:

我有一个数据集,我需要根据 group 列对我的数据集进行分组:

import numpy as np
import pandas as pd


arr = np.array([1, 2, 4, 7, 11, 16, 22, 29, 37, 46])
df = pd.DataFrame({'group': ['A', 'B', 'A', 'B', 'A', 'B', 'A', 'B', 'A', 'B'],
                   "target": arr})

for g_name, g_df in df.groupby("group"):
    print("GROUP: {}".format(g_name))
    print(g_df)

但是,有时group 可能不作为列存在,在这种情况下,我试图将整个数据作为一个组。

for g_name, g_df in df.groupby(SOMEPARAMETERS):
    print(g_df)

output:
target
  1
  2
  4
  7
  11
  16
  22
  29
  37
  46

是否可以更改groupby 的参数以获取整个数据作为一个组?

【问题讨论】:

  • 将整个数据作为一个组是什么意思?能举个例子吗?
  • 您可以使用例如 df.groupby([1]*len(df)) ,但真正的用例是什么?

标签: python pandas group-by


【解决方案1】:

假设你的意思是这样的,你有两列要分组:

import numpy as np
import pandas as pd


arr = np.array([1, 2, 4, 7, 11, 16, 22, 29, 37, 46])

df = pd.DataFrame({'group1': ['A', 'B', 'A', 'B', 'A', 'B', 'A', 'B', 'A', 'B'],
                   'group2': ['C', 'D', 'D', 'C', 'D', 'D', 'C', 'D', 'D', 'C'],
                   'target': arr})

然后您可以轻松地扩展您的示例:

for g_name, g_df in df.groupby(["group1", "group2"]):
    print("GROUP: {}".format(g_name))
    print(g_df)

这是你的意思吗?

【讨论】:

    猜你喜欢
    • 2018-08-21
    • 2015-02-02
    • 1970-01-01
    • 2020-12-06
    • 2021-07-22
    • 2018-06-02
    • 2015-11-23
    • 2014-04-08
    相关资源
    最近更新 更多