2016-07-06 6 views
0

&을 다른 timeseries를 병합하여 CSV 파일에서 가져 오려고합니다. 나는 다음과 같은 기본 코드 시도 :가져온 CSV 파일에서 datetime 열을 인덱싱하는 방법 - 팬더

import pandas as pd 
import numpy as np 
import glob 
import csv 
import os 

path = r'./A08_csv'  # use your path 
#all_files = glob.glob(os.path.join(path, "A08_B1_T5.csv")) 

df5 = pd.read_csv('./A08_csv/A08_B1_T5.csv', parse_dates={'Date Time'}) 
df6 = pd.read_csv('./A08_csv/A08_B1_T6.csv', parse_dates={'Date Time'}) 

print len(df5) 
print len(df6) 

df = pd.concat([df5],[df6], join='outer') 
print len(df) 

을하고 그 결과는 다음과 같습니다

12755 (df5) 
24770 (df6) 
12755 (df) 

공통의 행을 많이 가지고있는 두 개의 파일 (가장 긴만큼 DF 안 에 [ 'Date Time'] 열의 값 용어) ??

KeyError: 'Date Time' 

이런 일이 발생하는 이유에 대한 어떤 단서 :

#df5.set_index(pd.DatetimeIndex(df5['Date Time'])) 

그러나 나는 오류가 발생 :

나는이 줄을 추가, 인덱스에 날짜를 기반으로 데이터를 시도?

답변

1

난 당신이 필요하다고 생각 :

df5.set_index(['Date Time'], inplace=True) 

또는 read_csv 추가 매개 변수 index_col 더 나은 :

import pandas as pd 
import io 

temp=u"""Date Time,a 
2010-01-27 16:00:00,2.0 
2010-01-27 16:10:00,2.2 
2010-01-27 16:30:00,1.7""" 

df = pd.read_csv(io.StringIO(temp), index_col=['Date Time'], parse_dates=['Date Time']) 
print (df) 
         a 
Date Time    
2010-01-27 16:00:00 2.0 
2010-01-27 16:10:00 2.2 
2010-01-27 16:30:00 1.7 

print (df.index) 
DatetimeIndex(['2010-01-27 16:00:00', '2010-01-27 16:10:00', 
       '2010-01-27 16:30:00'], 
       dtype='datetime64[ns]', name='Date Time', freq=None) 

또 다른 해결책은 PARAMATERS 컬럼에 추가입니다 순서 - 경우 먼저 Date Time 열을 입력하고 0index_colparse_dates (파이썬 개수는 0) :

import pandas as pd 
import io 


temp=u"""Date Time,a 
2010-01-27 16:00:00,2.0 
2010-01-27 16:10:00,2.2 
2010-01-27 16:30:00,1.7""" 

df = pd.read_csv(io.StringIO(temp), index_col=0, parse_dates=[0]) 
print (df) 
         a 
Date Time    
2010-01-27 16:00:00 2.0 
2010-01-27 16:10:00 2.2 
2010-01-27 16:30:00 1.7 

print (df.index) 
DatetimeIndex(['2010-01-27 16:00:00', '2010-01-27 16:10:00', 
       '2010-01-27 16:30:00'], 
       dtype='datetime64[ns]', name='Date Time', freq=None) 
+0

감사합니다.코드'df5 = pd.read_csv ('./ A08_csv/A08_B1_T5.csv', index_col = [ '날짜 시간'], parse_dates = [ '날짜 시간'])'returns'ValueError : '날짜 시간'이 list' – Andreuccio

+0

''Date Time' 열에서 인덱스를 설정해야합니까? 아니면 지금 필요하지 않은가? – jezrael

+1

필요하다면,'df5 = pd.read_csv ('./ A08_csv/A08_B1_T5.csv', parse_dates = [ 'Date Time'])''print df.dtypes' 다음에 오는 것은 무엇입니까? – jezrael

0

이 잘못된 : concat

pd.concat([df5],[df6], join='outer') 

두 번째 인수는 axis입니다. 대신, 당신이 원하는 :

pd.concat([df5, df6], join='outer') 
관련 문제