熊猫柜台专栏

时间:2018-01-15 23:55:38

标签: python pandas

我有一个像这样的pandas数据框:

Site           City         ...       Year_Built      Heritage_Site
a              Paris        ...       1887            Yes
b              London       ...       1858            No
c              Paris        ...       1202            Yes
d              New York     ...       1930            Yes 

然后,我使用以下语句计算每个城市的一些变量的均值

df_mean = df.groupby('City').mean()

但是,我还想在第二个数据帧的末尾添加一个列,它基本上计算了'是'的出现次数。 (在Heritage_Count列中)为每个城市。类似于下面显示的内容:

City           ...          Heritage_Count
Paris          ...          4
London         ...          2
New York       ...          0

最有效的方法是什么?

1 个答案:

答案 0 :(得分:2)

IIUC

df.groupby('City').agg({'Year_Built':'mean','Heritage_Site':lambda x : sum(x=='Yes')})
Out[489]: 
         Year_Built  Heritage_Site
City                              
London       1858.0              0
NewYork      1930.0              1
Paris        1544.5              2