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

标签 python pandas

我在 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

关于python - pandas - 数据透视表到方阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32115944/

相关文章:

python - 您可以使用 Python 开放对 EC2 实例上的 UDP 端口的访问吗?

python - 从 python 中的列表列表中删除列表项

python - 在django中首先按降序排列空值

python - iter_content() 函数到底做了什么?

python - 使用 aplay 通过 python 脚本中的子进程播放声音

python - 基于两个 Dataframe 列构建计数字典

python - 如何计算多变量 1 列的相关系数

python - pandas 数据帧的准确内存使用估计

Python/Pandas -- 将日期和小时列转换为小时索引

python - 在不替换值的情况下多次合并数据框