Python 熊猫';s:来自pd.crosstab()的矩阵
我正在逐步学习pandas,我发现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!这就成功了。我会记住这句话
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