Python 以二进制计数值生成交叉表类型的数据帧
我有一个像这样的数据框Python 以二进制计数值生成交叉表类型的数据帧,python,pandas,Python,Pandas,我有一个像这样的数据框 UIID ISBN a 12 b 13 我想将每个UUID与ISBN进行比较,并在数据帧中添加一个计数列 UUID ISBN Count a 12 1 a 13 0 b 12 0 b 13 1 如何在熊猫身上做到这一点。我知道crosstab函数也有同样的功能,但我希望数据采用这种格式。用于: 替代解决方案,包括: 您还可以使用pd.DataFrame.unstack: df = pd.cr
UIID ISBN
a 12
b 13
我想将每个UUID与ISBN进行比较,并在数据帧中添加一个计数列
UUID ISBN Count
a 12 1
a 13 0
b 12 0
b 13 1
如何在熊猫身上做到这一点。我知道crosstab函数也有同样的功能,但我希望数据采用这种格式。用于:
替代解决方案,包括:
您还可以使用
pd.DataFrame.unstack
:
df = pd.crosstab(df.UIID, df.ISBN).unstack().reset_index()
print(df)
ISBN UIID 0
0 12 a 1
1 12 b 0
2 13 a 0
3 13 b 1
s = df.groupby(['UIID','ISBN']).size()
mux = pd.MultiIndex.from_product(s.index.levels, names=s.index.names)
df = s.reindex(mux, fill_value=0).reset_index(name='count')
print (df)
UIID ISBN count
0 a 12 1
1 a 13 0
2 b 12 0
3 b 13 1
df = pd.crosstab(df.UIID, df.ISBN).unstack().reset_index()
print(df)
ISBN UIID 0
0 12 a 1
1 12 b 0
2 13 a 0
3 13 b 1