熊猫如何在以下情况下进行分组

时间:2020-03-28 07:37:37

标签: python pandas jupyter-notebook

我在尝试了解group by的以下代码段时遇到问题,我试图了解df.groupby(L).sum()的计算方式。

这是我从网址enter link description here获得的代码段。 感谢您的帮助。

Initialising value to data frame

Pandas group by result

1 个答案:

答案 0 :(得分:2)

行是按list的值分组的,因为list的长度与DataFrame中的行数相同,这意味着:

rng = np.random.RandomState(0)
df = pd.DataFrame({'key': ['A', 'B', 'C', 'A', 'B', 'C'],
                   'data1': range(6),
                   'data2': rng.randint(0, 10, 6)},
                   columns = ['key', 'data1', 'data2'])
L = [0, 1, 0, 1, 2, 0]
print (df)
  key  data1  data2
0   A      0      5 <-0
1   B      1      0 <-1
2   C      2      3 <-0
3   A      3      3 <-1
4   B      4      7 <-2
5   C      5      9 <-0

所以:

data1 for 0 is 0 + 2 + 5 = 7
data2 for 0 is 5 + 3 + 9 = 17

data1 for 1 is 1 + 3 = 4
data2 for 1 is 0 + 3 = 3

data1 for 2 is 4
data2 for 2 is 7

输出:

print(df.groupby(L).sum())
   data1  data2
0      7     17
1      4      3
2      4      7

省略了关键字列,因为Automatic exclusion of 'nuisance' columns