如何使矩阵使用索引和值在python?



我有一个数据集,它有两列:

index  Value 
0      True
1      True
2      False
3      True

有可能得到一个看起来像

的矩阵吗?
index  0   1   2  3
0    True  True False True   
1    True  True False True
2    False False False False
3     True True False True

我试过pd.crosstab,仍然不能得到矩阵,有人能帮忙吗?

一个可能的方法:

m = np.tile(df['Value'], len(df)).reshape(-1, len(df)) * df[['Value']].values
out = pd.DataFrame(m)
print(out)
# Output
0      1      2      3
0   True   True  False   True
1   True   True  False   True
2  False  False  False  False
3   True   True  False   True

首先,使用to_numpyValue列的值转换为numpy数组。然后利用numpy广播,用[:,None]创建一个额外的轴,按位计算和操作:

vals = df['Value'].to_numpy()
res = pd.DataFrame(vals[:,None] & vals, index=df.index)

输出:

>>> res
0      1      2      3
index                            
0       True   True  False   True
1       True   True  False   True
2      False  False  False  False
3       True   True  False   True

相关内容

  • 没有找到相关文章

最新更新