2017-11-09 4 views
0

두 데이터 프레임이 있습니다 dfctr입니다.다른 데이터 프레임의 데이터 프레임에서 행 찾기

  • DF 컬럼 위치 1과 100 사이의 값, 및 정수를 포함하는 열 월평균 검색을 포함한다.

    position | Average monthly searches 
         1 |      250 
         2 |      10 
         3 |      30 
         2 |      40 
         4 |      100 
    
  • CTR 컬럼 위치 1과 100 사이의 값을, 각각의 위치에서의 감쇠를 반영하는 비율이다 열 감쇄 클릭률를 포함한다.

    Position | Decay Ctr 
         1 | 27.18% 
         2 | 18.27% 
         3 | 12.66% 
         4 |  9.13% 
         5 |  6.90% 
    

는 내가 뭘 원하는 올바른 붕괴 클릭률에 의해 CTR와 시간 월 평균 검색에 위치 DF 조회의 각 행에 대해입니다.

with open("C:\Environments\ENV\Export npower Report Rebuild KWs.csv",newline='') as csvfile: 
    with open("C:\Environments\ENV\ctr_csv.csv", newline='') as ctrfile: 
     ctr = pd.read_csv(ctrfile) 
     df = pd.read_csv(csvfile) 

는하지만 DF에 새 열 가시성에 넣어 올바른 요소를 추출하는 방법을 확실입니다. 내가 apply 성명을 사용하여 시도했지만 ctr을 올바르게 참조하는 방법이 확실하지 않았습니다.

df['visibility'] = df.apply(numpy.multiply(df['Average monthly searches'] , ctr[ctr[]] ), axis = 0) 
+0

두 위치가 같습니까? –

+0

'with()'블록이 조회 시도와 어떤 관련이 있는지는 명확하지 않습니다. – Parfait

+0

문제를 해결 한 대답을 수락하십시오. –

답변

0

나는 당신이 요구하는 무엇 확실하지 오전하지만 난 당신이 실제로 두 데이터 프레임을 병합 수행 할 작업을 제대로 이해한다면 당신은 당신이

첫 번째 방법을 원하는대로 작업을 수행 할 수 있습니다

df1 = pd.merge(df,ctr, on='Position' index=False) 
#Then you can multiply both columns however you like 
df1['Visibility'] = df1.apply(numpy.multiply(df['Average monthly searches'] , df['Decay Ctr']), axis=1) 

두 번째 방법

df1 = pd.merge(df,ctr,on='Position',index=False) 

    def multiply(x): 
     for index, row in df1.iterrows(): 
     row['Visibility'] = row['Average monthly searches'] * row['Decay Ctr'] 
     return row['Visibility'] 

df1 =df1.apply(multiply, axis=1) 
+0

'pd.merge'가 당신을 대신 할 것입니다 –

+0

df의 각 위치에 대한 ctr 위치를 찾으려고합니다. 우리가 df 위치의 첫 행을 보는 경우 1이므로 ctr에서 위치 1을 조회하고이 경우 평균 월간 검색을 곱합니다 (250 * 0.2718) - – HarAdams

+0

위 코드가하는 것과 동일한 내용입니다. 'pd.merge'는 두 데이터 프레임의 교집합을 취합니다. 간단히 말해서 * Position * 열의 공통 요소와 프레임을 결합한다는 것을 의미합니다. –

0

두 프레임을 병합 한 다음 새 열을 만들면됩니다.

comb_df = df.merge(ctr, left_on = 'Position', right_on = 'Position') 
comb_df['visibility'] = comb_df['Avg Monthly searches'] * 
comb_df['Decay'] 
관련 문제