2016-12-23 3 views
0

저는 Python을 처음 접했고 아마도 기본적인 질문을 가지고있을 것입니다.다른 팬더 데이터 프레임을 반복합니다.

다른 분야의 주식 데이터로 구성된 팬더 데이터 프레임을 가져 왔습니다. 따라서 모든 열은 동일하며 데이터 프레임 이름이 다릅니다.

일부 열에서 여러 가지 작은 연산을 수행해야하는데 한 번에 하나의 데이터 프레임에서이를 수행하는 방법을 파악할 수 있지만 여러 프레임을 반복하는 방법을 알아야하며 각각에 대해 동일한 작업을 수행하십시오. 나는 어떻게 든 루프에서 그것을 할 싶어 그냥 복사하고 향후 10 개 부문이 코드를 붙여

ConsumerDisc['IDX_EST_PRICE_BOOK']=1/ConsumerDisc['IDX_EST_PRICE_BOOK'] 
ConsumerDisc['IDX_EST_EV_EBITDA']=1/ConsumerDisc['IDX_EST_EV_EBITDA'] 
ConsumerDisc['INDX_GENERAL_EST_PE']=1/ConsumerDisc['INDX_GENERAL_EST_PE'] 
ConsumerDisc['EV_TO_T12M_SALES']=1/ConsumerDisc['EV_TO_T12M_SALES'] 
ConsumerDisc['CFtoEarnings']=ConsumerDisc['CASH_FLOW_PER_SH']/ConsumerDisc['TRAIL_12M_EPS'] 

그리고 대신,하지만 난 알아 어차피 : 예를 들어

한 DF 위해 내가 할 변수를 통해 df에 액세스하는 방법 :

CS=['ConsumerDisc'] 
CS['IDX_EST_PRICE_BOOK']=1/CS['IDX_EST_PRICE_BOOK'] 

그래서 df 이름의 목록을 만들고 루프 할 수 있습니다.

희망 사항을 수행하는 방법에 대한 간단한 예를 들려주세요.

+0

데이터 프레임을 어떻게 가져 옵니까? – x0s

+0

데이터 프레임에서 이러한 작업을 수행하고 메일 함수에 결과를 다시 실행하는 함수를 만듭니다. 다음이 함수를 여러 데이터 프레임에 호출 할 수 있습니다. – Shijo

답변

0

당신은 아마 확인의 의미는, 우리가 튜플 datasctructure에 넣어 한 dataframes 반복하고 다음은이

for df in (df1, df2, df3): 
    df['IDX_EST_PRICE_BOOK']=1/df['IDX_EST_PRICE_BOOK'] 
    df['IDX_EST_EV_EBITDA']=1/df['IDX_EST_EV_EBITDA'] 
    df['INDX_GENERAL_EST_PE']=1/df['INDX_GENERAL_EST_PE'] 
    df['EV_TO_T12M_SALES']=1/df['EV_TO_T12M_SALES'] 
    df['CFtoEarnings']=df['CASH_FLOW_PER_SH']/df['TRAIL_12M_EPS'] 

같은 뭔가를 않습니다 찾고?

+0

도움을 주셔서 감사합니다! 대단히 감사합니다! 이 솔루션은 내가 찾고있는 것입니다! –

+0

정답으로 표시 하시겠습니까? – xtian

0

다음과 같은 것이 있습니까? 방금 apply 각 DataFrame에 다음 함수를 만들 수 있도록

import pandas as pd 
d = {'a' : pd.Series([1, 2, 3, 10]), 'b' : pd.Series([2, 2, 6, 8])} 
z = {'d' : pd.Series([4, 2, 3, 1]), 'e' : pd.Series([21, 2, 60, 8])} 
df = pd.DataFrame(d) 
zf = pd.DataFrame(z) 

df.head() 

    a b 
0 1 2 
1 2 2 
2 3 6 
3 10 8 

df = df.apply(lambda x: 1/x) 

df.head() 

     a   b 
0 1.0 0.500000 
1 2.0 0.500000 
2 3.0 0.166667 
3 10.0 0.125000 

당신은 더 많은 기능을 가지고있다. 또는 이러한 람다 함수를 특정 열에 만 적용 할 수도 있습니다. 따라서 모든 열에 1/열만 적용하고 나머지는 마지막으로 끝내려한다고 가정 해 보겠습니다. df.ix[:, :-1].apply(lambda x : 1/x).

관련 문제