>

파이썬과 팬더를 처음 사용하고 팬더 데이터 프레임을 읽는 CSV 파일이 있습니다. 아래에서 첨부 된 파일을 찾으십시오.

PLDATE의 행 값을 기준으로 열 OND_ORIGIN 및 OND_DEST를 채우려 고합니다.

논리는 같은 날 비행 한 모든 항공편에 대해 OND_ORIGIN 및 OND_DEST는 출발 _ 출발지 및 도착지-열과 동일해야합니다

import pandas as pd
import numpy as np
import csv

location = r'C:\Users\bi.reports\Desktop\output.csv'
df = pd.read_csv(location,sep='\s*,\s*',engine='python')
for i, row in df.iterrows():
    if row['COUPON_NUMBER'] == 1:
        df.OND_ORIGIN = df.DEP_FROM 
        #df.OND_DEST = df.DEP_FROM
    elif  row['COUPON_NUMBER'] == 2:
        #df.OND_ORIGIN = df.DEP_FROM 
        df.OND_DEST = df.ARR_TO
    elif row['COUPON_NUMBER'] == 3:
        #df.OND_ORIGIN = df.DEP_FROM 
        df.OND_DEST = df.ARR_TO   
    else:
    df.OND_ORIGIN = df.DEP_FROM  
    #df.OND_DEST = df.ARR_TO 
   df.to_csv('out.csv', sep=',',index = False)

사용중인 CSV 파일


  • 답변 # 1

    이것을 시도하십시오 :

    df.loc[df['COUPON_NUMBER'] == 1, 'OND_ORIGIN'] = df.DEP_FROM
    df.loc[df['COUPON_NUMBER'].isin([2,3]), 'OND_DEST'] = df.ARR_TO
    df.loc[~df['COUPON_NUMBER'].isin([1,2,3]), 'OND_ORIGIN'] = df.DEP_FROM
    
    

    비트 최적화 :

    df.loc[df['COUPON_NUMBER'].isin([2,3]), 'OND_DEST'] = df.ARR_TO
    df.loc[~df['COUPON_NUMBER'].isin([2,3]), 'OND_ORIGIN'] = df.DEP_FROM
    
    

관련 자료

  • 이전 python - BeautifulSoup은 CSS 선택기를 사용하여 모든 요소를 ​​반환하지 않습니다
  • 다음 tomcat - 서블릿 컨테이너는 인증 된 사용자의 요청을 어떻게 식별합니까?