pandas dataframe计算所有x的唯一y

时间:2017-01-11 22:06:41

标签: python pandas dataframe

我目前正在使用pandas daraframe。现在我想要计算每个y的所有值x。例如:对于我所拥有的每个州,我都要计算城市数量。

我试过这样的事情,但我知道这不是正确的语法,但我不知道如何正确地做到这一点:

df['sumCity'] = df[['STATE'].unique()df['CITY']].count()

谁能告诉我该怎么做?

3 个答案:

答案 0 :(得分:3)

尝试:

df['sumCity'] = df.groupby('STATE').CITY.transform('nunique')

答案 1 :(得分:1)

我认为您想要groupby。像这样:

group = df.groupby('STATE')['CITY'].count()

然后使用字典将此结果映射到新列:

df['sumCity'] = df['STATE'].map(dict(group))

答案 2 :(得分:0)

我不确定你的y,但你可以将你的y转换为类系列,并使用如下的class value_counts():

pandas.Series(y).value_counts()