Skip to main content
 首页 » 编程设计

python之pandas之数据透视表到方阵

2025年05月04日35leader

我在 data.csv 文件中有这个简单的数据框:

I,C,v 
a,b,1 
b,a,2 
e,a,1 
e,c,0 
b,d,1 
a,e,1 
b,f,0 

我想旋转它,然后返回一个方表(作为矩阵)。到目前为止,我已经阅读了数据框并构建了一个数据透视表:

df = pd.read_csv('data.csv') 
d = pd.pivot_table(df,index='I',columns='C',values='v') 
d.fillna(0,inplace=True) 

正确获取:

C  a  b  c  d  e  f 
I                   
a  0  1  0  0  1  0 
b  2  0  0  1  0  0 
e  1  0  0  0  0  0 

现在我想返回一个方表,其中行中缺少列索引,因此生成的表将是:

C  a  b  c  d  e  f 
I                   
a  0  1  0  0  1  0 
b  2  0  0  1  0  0 
c  0  0  0  0  0  0 
d  0  0  0  0  0  0 
e  1  0  0  0  0  0 
f  0  0  0  0  0  0 

请您参考如下方法:

reindex可以添加行和列,并用 0 填充缺失值:

index = d.index.union(d.columns) 
d = d.reindex(index=index, columns=index, fill_value=0) 

产量

   a  b  c  d  e  f 
a  0  1  0  0  1  0 
b  2  0  0  1  0  0 
c  0  0  0  0  0  0 
d  0  0  0  0  0  0 
e  1  0  0  0  0  0 
f  0  0  0  0  0  0