我从城市交通数据开始,增加了一个包含交通方式的列。
Orig Dest Type
NY SF Train
NY SF Plane
NO NY Plane
SE NO Plane
SE NO Train我想聚合它,以便Type中的每个唯一值成为一个列,每个唯一的Orig/Dest对都具有该类型的计数
Orig Dest Plane Train
NY SF 1 1
NO NY 1 0
SE NO 1 1我知道一些使用pd.groupby的基本聚合,但只能聚合到只能获得原始/目标对的基本计数,使用:
df.groubpy(['Orig','Dest'])['Type'].count()发布于 2016-08-17 17:19:22
您可以使用nunique和unstack。Last reset_index和rename_axis ( pandas 0.18.0中的新增功能):
print (df.groupby(['Orig','Dest', 'Type'])['Type']
.nunique()
.unstack()
.fillna(0)
.astype(int)
.reset_index()
.rename_axis(None, axis=1))
Orig Dest Plane Train
0 NO NY 1 0
1 NY SF 1 1
2 SE NO 1 1https://stackoverflow.com/questions/38992512
复制相似问题