2017-03-17 3 views
1

목록 목록 목록이 있습니다. 가장 바깥 쪽 목록은 길이가 20입니다 (개별 범주). 가운데 목록은 가변 길이 (타임 스탬프 목록)입니다. 안쪽리스트의 길이는 5입니다 (각 타임 스탬프 분할). 예를 들어팬더 데이터 프레임 목록 목록 목록

sTimestamps[0][:5][:] = 

[['Tue', 'Feb', '7', '10:06:30', '2017'], 
['Tue', 'Feb', '7', '10:07:06', '2017'], 
['Tue', 'Feb', '7', '10:07:40', '2017'], 
['Tue', 'Feb', '7', '10:12:36', '2017'], 
['Tue', 'Feb', '7', '10:13:24', '2017']] 

I는 각 인덱스가 가장 바깥에서의 20 개의 인덱스에 대해 동일한 인덱스 번호에 해당하는 경우, 카테고리 이름이 포함 크기 2의 categories라는 목록 문자열을 갖는다.

이 항목을 타임 스탬프의 5 가지 구성 요소와 범주 이름을 지정하는 여섯 번째 추가 열인 팬더 데이터 프레임으로 어떻게 변환 할 수 있습니까?

2 중첩 목록에 대해이 작업을 수행 할 수 있지만이 중첩 목록은 문제를 일으 킵니다.

+0

3 중첩 목록은 무엇입니까? 우리에게 코드를 보여주십시오. 단어가 모호합니다. –

답변

3
sTimeStamps = [ 
    [['Tue', 'Feb', '7', '10:06:30', '2017'], 
    ['Tue', 'Feb', '7', '10:07:06', '2017'], 
    ['Tue', 'Feb', '7', '10:07:40', '2017'], 
    ['Tue', 'Feb', '7', '10:12:36', '2017'], 
    ['Tue', 'Feb', '7', '10:13:24', '2017']], 
    [['Tue', 'Feb', '7', '10:06:30', '2017'], 
    ['Tue', 'Feb', '7', '10:07:06', '2017'], 
    ['Tue', 'Feb', '7', '10:07:40', '2017']], 
    ] 

categories = ['cat%s' %i for i in range(20)] 

pd.concat([pd.DataFrame(d) for d in sTimeStamps], keys=categories) 

      0 1 2   3  4 
cat0 0 Tue Feb 7 10:06:30 2017 
    1 Tue Feb 7 10:07:06 2017 
    2 Tue Feb 7 10:07:40 2017 
    3 Tue Feb 7 10:12:36 2017 
    4 Tue Feb 7 10:13:24 2017 
cat1 0 Tue Feb 7 10:06:30 2017 
    1 Tue Feb 7 10:07:06 2017 
    2 Tue Feb 7 10:07:40 2017