2017-02-01 3 views
2

테이블 형식으로 중첩 사전을 인쇄하는 방법이 있습니까? 내 데이터 구조는 다음과 같습니다.꽤 중첩 된 사전을 테이블로 사용합니다.

data = {'01/09/16': {'In': ['Jack'], 'Out': ['Lisa', 'Tom', 'Roger', 'Max', 'Harry', 'Same', 'Joseph', 'Luke', 'Mohammad', 'Sammy']}, 
    '02/09/16': {'In': ['Jack', 'Lisa', 'Rache', 'Allan'], 'Out': ['Lisa', 'Tom']}, 
    '03/09/16': {'In': ['James', 'Jack', 'Nowel', 'Harry', 'Timmy'], 'Out': ['Lisa', 'Tom 

그리고 나는 이것을 (한 줄에 이름을지었습니다.) 이와 같이 인쇄하려고합니다. 이름은 서로 아래에 나열되어 있습니다.

+----------------------------------+-------------+-------------+-------------+ 
|    Status    | 01/09/16 | 02/09/16 | 03/09/16 | 
+----------------------------------+-------------+-------------+-------------+ 
|    In     | Jack   Tom    Tom 
               | Lisa  | Jack  | 
+----------------------------------+-------------+-------------+-------------+ 
|    Out    | Lisa 
             Tom  | Jack  | Lisa  | 
+----------------------------------+-------------+-------------+-------------+ 

나는이 코드로 팬더를 사용해 보았습니다.

pd.set_option('display.max_colwidth', -1) 
df = pd.DataFrame(role_assignment) 
df.fillna('None', inplace=True) 
print df 

그러나 위의 문제는 팬더가 (이름이 한 줄에 인쇄하고 이름이 많이있다, 특히, 잘 보이지 않는)이처럼 인쇄이다;

                01/09/16 \ 
In [Jack]                 
Out [Lisa, Tom, Roger, Max, Harry, Same, Joseph, Luke, Mohammad, Sammy] 

         02/09/16       03/09/16 
In [Jack, Lisa, Rache, Allan] [James, Jack, Nowel, Harry, Timmy] 
Out [Lisa, Tom]     [Lisa, Tom] 

나는 이것을 선호하지만 아래에 나열된 이름들;

팬더 또는 다른 도구를 사용하여 더 깔끔하게 인쇄 할 수있는 방법이 있습니까?

답변

2

이것은 말도 안되는 해커이며 표시 목적으로 만 사용됩니다.

data = { 
    '01/09/16': { 
     'In': ['Jack'], 
     'Out': ['Lisa', 'Tom', 'Roger', 
       'Max', 'Harry', 'Same', 
       'Joseph', 'Luke', 'Mohammad', 'Sammy'] 
    }, 
    '02/09/16': { 
     'In': ['Jack', 'Lisa', 'Rache', 'Allan'], 
     'Out': ['Lisa', 'Tom'] 
    }, 
    '03/09/16': { 
     'In': ['James', 'Jack', 'Nowel', 'Harry', 'Timmy'], 
     'Out': ['Lisa', 'Tom'] 
    } 
} 


df = pd.DataFrame(data) 

d1 = df.stack().apply(pd.Series).stack().unstack(1).fillna('') 

d1.index.set_levels([''] * len(d1.index.levels[1]), level=1, inplace=True) 

print(d1) 

    01/09/16 02/09/16 03/09/16 
In  Jack  Jack James 
        Lisa  Jack 
        Rache Nowel 
        Allan Harry 
          Timmy 
Out  Lisa  Lisa  Lisa 
      Tom  Tom  Tom 
     Roger     
      Max     
     Harry     
      Same     
     Joseph     
      Luke     
     Mohammad     
     Sammy    
관련 문제