2015-08-20 2 views
1

У меня есть этот простой dataframe в 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 

Я хотел бы, чтобы повернуть его, а затем возвращает квадратную таблицу (в качестве матрицы). До сих пор я прочитал dataframe и построить сводную таблицу с:

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 

ответ

5

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 
Смежные вопросы