2013-12-20 2 views
0

데이터를 찾으려고합니다.파이썬 데이터가 어디에 있습니까

import pandas as pd 
import numpy as np 
import urllib 

url = 'http://cawcr.gov.au/staff/mwheeler/maproom/RMM/RMM1RMM2.74toRealtime.txt' 
urllib.urlretrieve(url,'datafile.txt') 

df = pd.read_table('datafile.txt', sep='\s+', header=None) 
df.columns = ['year', 'month', 'day', 'n1', 'n2', 'n3', 'n4', 'type'] 
df = df[df.year > 1978] 
df = df[df.type < 'Prelim_value:_OLR_&_NCEPop_wind'] 

tda1[] 
for a in range(df.shape[0],-1): 
#for a in range(firstrowofdata,lastrowofdata): 
#where is the first row, where is the last row, how do I find out through the 
#computer program. I want to do this with several different data sources. 
    print(df.iloc[a]) 
     if a < df.shape[0]+19: 
       tda1.append(0.0) 

첫 번째 질문은 어떻게 파이썬 2.7에서 헤더를 제거 할 수 있는가입니다. 3.3에서는 위 코드가 제대로 작동하지만 2.7에서 헤더를 제거하지 않습니다. 두 가지 버전의 Python간에 여러 가지 문제가 발생했습니다. 나는 2.7 터미널을 설치했고 마침내 어제 밤에 나가서 2.7 쉘 이상으로 바꿨습니다. 내가 사용하고있는 2.7 터미널과 3.3 쉘 사이의 불일치를 싫어하거나 사용하고 있었다.

일단 데이터 소스에서 데이터를 다운로드하면 프로그램의 전체 과정에서 사용할 다양한 소스 중 하나에서 작업하기 시작합니다. 불필요한 데이터를 제거 할 수 있기를 원합니다. 나머지 데이터로 수학적 작업을 수행하고 결과를 원래 데이터와 함께 새 열에 넣습니다. 일명 2001 년 7 월 15 일 수학 계산은 2001 년 7 월 15 일 원래 데이터 옆에있을 것입니다.이를 수행하려면 삭제 된 데이터의 첫 번째 행이 어디에 있는지 찾아야합니다. 그러면 for 루프 (firstrow, lastrow). 박탈 된 데이터의 시작 부분과 박탈 된 데이터의 마지막 부분이 어디에 있는지 알 수있을 때까지는 다른 작업을 수행 할 수 없습니다. 처음/마지막 행이 어디에 저장되어 있는지 알려주는 번호를 어떻게 검색합니까? 머리/꼬리 또는 iloc을 사용하라고 이전에 들었습니다. df.iloc을 사용하려고하면 DataFrame에 'iloc'속성이없는 오류가 발생합니다. df.head (0) 또는 df.tail (-1)을 사용하려고하면 처음 또는 마지막 행이 머리 또는 꼬리 선의 첫 번째 숫자로 표시됩니다. 그 숫자를 어떻게 얻습니까? 실제로 번호를 사용하여 컴퓨터 프로그램의 첫 번째/마지막 행 데이터를 설정할 수 있습니다. 시도한 경우 :

n = df.head(0) 
print (n) 

여전히 나에게 똑같은 것을 제공합니다. 전체 머리/꼬리 줄에서 행 번호를 제거하려면 어떻게합니까?

두 번째로 수학 계산을 수행 한 다음 돌아가서 데이터 프레임에 열을 추가 할 수 있기를 원합니다. 가능한가요 ... 어떻게? 나는

df.columns = ['year', 'month', 'day', 'n1', 'n2', 'n3', 'n4', 'type', 'calc1', 'calc2', 'etc'] 

나는 날짜가 일치하는 동일 dataframe에있을 모든 데이터를 원하는 일명, 나는 원래의 데이터가 저장되어있는 곳으로 바로 이곳에서 수학 CALC 데이터를 넣을 수 있습니다. 예를 들어, 내가 5 일 이동 평균을 취하는 경우, 2001 년 7 월 1 일 종료일에 대해 2001 년 7 월 1 일 원본 데이터와 함께 5 일 평균을 구합니다. 데이터를 훨씬 쉽게 액세스 할 수 있습니다.

지금까지이 프로젝트를 진행하면서 첫 번째/마지막 행을 얻는 데 어려움을 겪고 있습니다. 이게 내가 지금하는 전부 야. 나는 운이없는 길로 전진하려고 노력하고있다.

+0

권리. 'df.shape [0]'이 음수가 아닌 한 'range (df.shape [0], - 1)'은 빈 시퀀스입니다. 'df.shape [0]'에서 0으로 반복하고 싶다면'range'에 부정적인 단계를 줘야합니다. – Blckknght

+0

이 질문과 이미 질문 한 내용이 어떻게 다른지 잘 모르겠습니다. http://stackoverflow.com/questions/20692140/python-pandas-find-starting-ending-row-and-rounding-numbers?rq=1 –

+0

몇 가지 질문입니다. 단 하나 문제점/질문에 SO 실을 지키는 것이 최상이다. 둘째, 코드가 실행되지 않습니다. 왜해야하는지에 대한 정보는 http://sscce.org/를 참조하십시오. 마지막으로 가짜/합성/장난감 데이터에 의존하고 있어도 성취하려는 것을 보여주는 예제 출력을 보여주십시오. –

답변

0

당신은 (그것을 이것은 파이썬 3 필요하지 않습니다 혼란) 명시 적으로 처음 두 행을 건너 뛰어야 : 나는 팬더에 대해 잘 모르겠지만, 첫 번째 루프는 아마 작동하지 않을

df = pd.read_csv('datafile.txt', sep='\s+', header=None, skiprows=2) 
관련 문제