2013-04-01 3 views
15

CSV 파일에서 DataFrame으로 가져온 데이터 테이블이 있습니다.Python Pandas - 날짜 열에서 열 인덱스

데이터에는 약 10 개의 범주 필드, 1 개월 열 (날짜 시간 형식) 및 나머지는 데이터 계열이 포함됩니다.

어떻게 날짜 열을 열 축을 통해 인덱스로 변환합니까?

+1

당신이 함수를 호출 할 경우 [read_csv (http://pandas.pydata.org/pandas-docs/stable/generated/pandas.io.parsers.read_csv.html) 자체가이를 수행 'index_col'과'parse_dates = True' –

답변

22

당신은 set_index을 사용할 수 있습니다 : 예를 들어

df.set_index('month') 

:

In [1]: df = pd.DataFrame([[1, datetime(2011,1,1)], [2, datetime(2011,1,2)]], columns=['a', 'b']) 

In [2]: df 
Out[2]: 
    a     b 
0 1 2011-01-01 00:00:00 
1 2 2011-01-02 00:00:00 

In [3]: df.set_index('b') 
Out[3]: 
      a 
b    
2011-01-01 1 
2011-01-02 2 
+0

감사합니다 앤디 날짜가 다른 축을 따라 가도록 인덱스를 설정할 수 있습니까? 이 집단이 가치가 있을까요? – MrHopko

+1

가지고있는 DataFrame과 원하는 것을 제공 할 수 있습니까? 날짜 열을 열 인덱스로 만드는 것이 의미가 있는지 모르겠습니다 ... 값을 그룹화하지 않습니다. 이로 인해 하나의 열이 인덱스가됩니다. :) –

+0

각 열이 1 개월을 나타낼 수 있도록 데이터 정렬을 원합니다. 표의 각 행은 다른 시계열을 나타냅니다. 말이 돼? 나는 테이블로 시연 할 것이지만이 웹 사이트에 테이블을 삽입하는 방법을 모른다. – MrHopko

4

난 그냥 reset_index 해결 한 비슷한 문제가 있었다.

ind_df=df.set_index(['A', 'B'])

df.reset_index(level=0, inplace=True) 
3

당신이 미리 날짜 컬럼의 이름을 알고 시계열 열의에 따라 자동으로 인덱스를 설정할 필요가없는 경우 :하지만 당신은 set_index 또는 reset_index를 사용할 수 있습니다 데이터

df.set_index((df.select_dtypes(include=[np.datetime64]).columns).tolist()) 
관련 문제