2016-07-02 3 views
2

아무 것도 찾을 수 없습니다 ... 일부 컴퓨터 학습 프로젝트에 대해 세 가지 다른 데이터 세트에서 작업 중이며 정확히 동일한 명령을 입력하는 힘든 작업이 있습니다. 같은다른 데이터 프레임에 동일한 작업을 적용하면

이었고 끝난 각 dataframe에 적용에 중간에 많은 명령이 있었다

aviva = pd.read_csv('data/LON_AV_.csv', parse_dates=['Date'], index_col='Date', date_parser=dateparse) 
admiral= pd.read_csv('data/LON_ADM.csv', parse_dates=['Date'], index_col='Date', date_parser=dateparse) 
three = pd.read_csv('data/LON_III.csv', parse_dates=['Date'], index_col='Date', date_parser=dateparse) 

: 다른 데이터 프레임에 동일한 작업에 대해 같은 방법은 ... 그것은이 시작 this :

three.to_csv('three_x.csv') 
three_label.to_csv('three_y.csv') 

admiral.to_csv('admiral_x.csv') 
admiral_label.to_csv('admiral_y.csv') 

aviva.to_csv('aviva_x.csv') 
aviva_label.to_csv('aviva_y.csv') 

내 질문이 있네.이 모든 시간에 코드를 반복 할 필요가 없도록 프로세스 속도를 향상시키는 방법이 있습니까?

dfs = dict() 
for filename, name in [('LON_AV_.csv', 'aviva'), 
         ('LON_ADM.csv', 'admiral'), 
         ('LON_III.csv', 'three')]: 
    dfs[name] = pd.read_csv('data/{}'.format(filename), parse_dates=['Date'], 
          index_col='Date', date_parser=dateparse) 

    ... 

    dfs[name].to_csv('{}_x.csv'.format(name)) 
    label[name].to_csv('{}_y.csv'.format(name)) 

답변

0

는 내가 그것을 이런 짓을 했을까 : 은지도 DataFrames에 같은 이름의 키를 하나 dict를 사용, 너희들을 감사하고 좋은 하루

+0

좋은 일하는 사람이 당신에게 감사합니다. 꽤 달콤한, thts 정도까지는 자동으로 나는 그것을 만들 수 있습니다, 멋진 한 g – entercaspa

1

대신 세 DataFrames, aviva, admiral, three에게 있습니다 방법 :

in_csv_template = 'data/LON_{}.csv' 
out_csv_template = 'out/{}_x.csv' 
out_label_template = 'out/{}_y.csv' 

cfg = { 
    'aviva': 'AV_', 
    'admiral': 'ADM', 
    'three': 'III', 
} 

def process(fi_csv, fo_csv, fo_label, **kwargs): 
    df = pd.read_csv(fi_csv, **kwargs) 

    ... 

    df.to_csv(fo_csv) 
    df_label.to_csv(fo_label) 


for k,v in cfg.items(): 
    process(in_csv_template.format(v), 
      out_csv_template.format(k), 
      out_label_template.format(k), 
      parse_dates=['Date'], 
      index_col='Date', 
      date_parser=dateparse) 
관련 문제