我在pandas dataframe中有以下数据。
Id1 StartTime start_lat start_long StartGeohash
0 113 2016-11-01 10:50:28.063 -33.139507 -100.226715 9vbsx2
1 113 2016-11-02 10:49:24.063 -33.139507 -100.226715 9vbsx2
2 115 2016-11-03 10:55:20.063 -36.197660 -101.186050 9y2jcm
3 115 2016-11-04 10:53:19.063 -36.197660 -101.186050 9y2jcm
4 116 2016-11-01 12:59:21.127 -33.139507 -100.226715 9vbsx2
5 114 2016-11-02 12:41:46.063 -36.197660 -101.186050 9y2jcm
6 120 2016-11-03 12:48:04.063 -36.197660 -101.186050 9y2jcm
7 117 2016-11-04 12:51:51.063 -36.197660 -101.186050 9y2jck
8 118 2016-11-05 18:07:01.063 -36.197660 -101.186050 9y2jck
我试图找出有多少不同的Id1具有相同的StartGeohash
StartGeohash Count
9vbsx2 2
9y2jcm 3
9y2jck 2
我尝试了以下内容,但它为每个Id1
产生不同的StartGeohashes group = df1.groupby('Id1')['StartGeohash'].unique()
任何建议都会有所帮助。谢谢!!
答案 0 :(得分:3)
怎么样:
df1.groupby('StartGeohash').apply(lambda x: len(x.Id1.drop_duplicates()))
答案 1 :(得分:3)
答案 2 :(得分:0)
关注'StartGeohash'
列,我使用duplicated
方法对列进行切片,并使用nunique
计算唯一值
df.StartGeohash[df.StartGeohash.duplicated()].nunique()
3