Python 熊猫';s:来自pd.crosstab()的矩阵

Python 熊猫';s:来自pd.crosstab()的矩阵,python,pandas,Python,Pandas,我正在逐步学习pandas,我发现pd.crosstab()可以创造奇迹,但我很难让它在这种情况下工作 我有一个对象列表obj用int标记,我想让共享相同标记的对象矩阵(如果相同,则为1,否则为0) -> 有一些的方法可以做到这一点,还有一种对熊猫友好的方法吗 PS:pd.crosstab(df.obj,df.obj,values=df.tag,aggfunc=[np.sum])已尝试过,但已填充NaN。您可以与和一起使用: 您可以与和一起使用: 谢谢@jezrael!这就成功了。我会记住这句话

我正在逐步学习pandas,我发现
pd.crosstab()
可以创造奇迹,但我很难让它在这种情况下工作

我有一个对象列表
obj
用int标记,我想让共享相同标记的对象矩阵(如果相同,则为1,否则为0)

->

有一些的方法可以做到这一点,还有一种对熊猫友好的方法吗

PS:pd.crosstab(df.obj,df.obj,values=df.tag,aggfunc=[np.sum])已尝试过,但已填充NaN。

您可以与和一起使用:

您可以与和一起使用:


谢谢@jezrael!这就成功了。我会记住这句话的谢谢@jezrael!这就成功了。我会记住合并函数
| obj | tag |
|-----|-----|
| a   | 0   |
| b   | 2   |
| c   | 1   |
| ... | ... |
| z   | 2   |
|     | a | b | c | ... | z |
|-----|---|---|---|-----|---|
| a   | 1 | 0 | 0 | .   | 0 |
| b   | 0 | 1 | 0 | .   | 1 |
| c   | 0 | 0 | 1 | .   | 0 |
| ... | . | . | . | .   | 0 |
| z   | 0 | 1 | 0 | 0   | 1 |
df = df.merge(df, on='tag')
df = pd.crosstab(df.obj_x, df.obj_y).rename_axis(None).rename_axis(None, axis=1)
print (df)
   a  b  c  z
a  1  0  0  0
b  0  1  0  1
c  0  0  1  0
z  0  1  0  1