熊猫:在DataFrame中创建汇总列

以下面的DataFrame为例,

In [83]:

df = pd.DataFrame({'A':[1,1,2,2],'B':[1,2,1,2],'values':np.arange(10,30,5)})

df

Out[83]:

A B values

0 1 1 10

1 1 2 15

2 2 1 20

3 2 2 25

生成一个新列的简单方法是什么?该列包含某一列中的某些数据聚集?

例如,如果我总结valuesA

In [84]:

df.groupby('A').sum()['values']

Out[84]:

A

1 25

2 45

Name: values

我怎样才能得到

   A  B  values  sum_values_A

0 1 1 10 25

1 1 2 15 25

2 2 1 20 45

3 2 2 25 45

回答:

In [20]: df = pd.DataFrame({'A':[1,1,2,2],'B':[1,2,1,2],'values':np.arange(10,30,5)})

In [21]: df

Out[21]:

A B values

0 1 1 10

1 1 2 15

2 2 1 20

3 2 2 25

In [22]: df['sum_values_A'] = df.groupby('A')['values'].transform(np.sum)

In [23]: df

Out[23]:

A B values sum_values_A

0 1 1 10 25

1 1 2 15 25

2 2 1 20 45

3 2 2 25 45

以上是 熊猫:在DataFrame中创建汇总列 的全部内容, 来源链接: utcz.com/qa/411288.html

回到顶部