2017-09-22 4 views
0

파이썬에서 큰 데이터 프레임에서 하나의 값을 읽는 방법을 찾으려고합니다. 내 프로젝트에 2 개의 데이터 테이블이 있습니다.Python에서 dataframe의 단일 값을 읽으려면 어떻게해야합니까?

하나는 다음과 같다 : 약 260 개월 만 개 회사가있다

Company ID Company 201512 201511 ... 199402 199401 
1234  abc  1.1  0.8  ... 2.1  -0.9 
. 
. 
. 
4321  cba  2.1  -0.4 ... 0.3  -0.1 

. 한 달에 한 번씩 월별 수익을 확인하고 그 데이터 포인트 뒤에 36 개의 유효한 데이터 포인트가 있는지 확인해야합니다. 즉, "0"또는 "NaN"이 없음을 의미합니다. 36 개의 유효한 데이터 포인트가있는 경우 다른 테이블에 나열된 7 가지 요인에 대해 이러한 36 개의 데이터 포인트를 회귀해야합니다.

다른 테이블은 다음과 같습니다

Month Factor1  Factor2  ...  Factor6  Factor7 
201512 -0.4  1.1   ...  2.1   1.2 
. 
. 
. 
199401 0.1   0.2   ...  0.3   0.4 

이제 내 문제는, 내가 표 1에서 한 번에 하나의 값을로드하고 그것을 위해 루프를 만들 수있는 방법을 찾을 수 없습니다. 누군가 조언 해 줄 수 있습니까?

+0

왜 '0'은 유효하지 않은 월간 수익입니까? – acushner

+0

'value = df [ 'some_field'] .iloc [the_index]'를 사용할 수는 있지만 어떤 식 으로든'group_by.aggregate() '하는 방법이 있다면'for' 루프에서이를 원하지 않을 것입니다. 특정 가치를 취하십시오. – roganjosh

+0

0은 누락 된 데이터 포인트 또는 오타 일 가능성이 높습니다. –

답변

0

당신은 for 루프를 원하지 않습니다.

0가 유효한 월간 수익률이다 가정 및 만 36 열 Company 후 가지고 당신은 쉽게 유효한 매달 반환 데이터를 모든 기업을 찾을 수 있습니다 어떤 알 수없는 이유로, 당신이 얻을하려는 경우에

df = df[df.notnull().all(1)] 

0의 제거, 당신은 첫째로 교체 할 수 있습니다

df = df[df.replace(0, np.nan).notnull().all(1)] 

편집을 코멘트 :

당신을 당신은 다음 코드 행을 반복 할 수

cols = df.columns 
first_col = get_first_return_col(df) 
for i in range(first_col, len(cols)): 
    df = df[df[cols[i : i + 36]].notnull().all(1)] 
    run_regression(df[cols[i]]) 
+1

답변 해 주셔서 감사합니다. 이것은 각 회사마다 하나의 회귀가 필요한 경우에 도움이되지만 실제로는 각 회사마다 여러 회귀 분석을 실행해야합니다. 그것은 이렇게 간다. 나는 회사 abc에 대한 201512 개의 데이터를 읽었으며, 그 이후 36 개의 유효한 데이터를 찾았습니다. 회귀 분석을 실행하고 결과를 기록합니다. 그런 다음 동일한 회사의 201511 데이터에서 36 개월 유효 데이터 포인트가 있는지 확인합니다. 그렇다면이 36 개월 동안 다른 회귀 분석을 실행해야하는데 이는 이전 회귀 분석과 1 개월 차이가 있습니다. –

+0

업데이트 된 답변을 확인하십시오. 아마도 도움이 될 것입니다. – acushner

1

: 같은 것을 할 수있는 것은

for index, row in df.iterrows(): 

그런 다음 index은 행의 인덱스 것, 그리고에 대한 row["Company"]을 말할 수 당신은 열을 액세스 할 수 있습니다 예.

관련 문제