对数据框列

时间:2017-11-23 21:29:52

标签: python python-3.x pandas dataframe pandas-groupby

import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randint(0,10,size=(10, 3)),
                  columns=['price', 'created_year', 'price_per_cm'],
                  index=range(1,11))
>>> df
    price  created_year  price_per_cm   artist
1       9             5             4    degas
2       4             0             8    degas
3       2             5             1   renoir
4       0             0             1  picasso
5       9             0             7   renoir
6       5             0             1    degas
7       6             5             8  picasso
8       9             5             3  picasso
9       0             9             7    degas
10      0             5             9  picasso

我想按艺术家分组,并将不同的功能应用于某些列,即mean()'price'max()'created_year'。这就是我实现这个目标的方式:

s1 = df.groupby(['artist'])['price'].mean()
s2 = df.groupby(['artist'])['created_year'].max()
df2 = pd.concat([s1, s2], axis=1)
         price  created_year
>>> df2
         price  created_year
artist
degas     4.50             9
picasso   3.75             5
renoir    5.50             5

是否有更直接的方法来达到这一点,而不是生成两个系列并将它们再次连接到数据帧?

0 个答案:

没有答案