2017-11-07 5 views
2

필자가 쉽게 이해할 수있는 더 쉬운 방법으로이를 조작하는 데 도움이되는 다른 코드에 매핑해야하는 통화 데이터베이스를 만듭니다. IT 시스템.다른 값으로 매핑되는 함수에 대한 입력으로 기존 열이있는 새 팬더 데이터 프레임

내 데이터베이스를 다음과 같이로드 : 나는 또한 내가 첨부 매핑 가이드를로드하고

url = "My RawData csv" 

The csv has the below format: 
Underlying Notional 
AUDBRL  50,000 
AUDCAD  100,000 
AUDNZD  20,000 
USDJPY  15,000 
AUDKRW  12,000 

etc 

data = pd.read_csv(url) 
data = data.dropna() $ 

내가 통해이 값에 액세스 :

url2 = "My Mapping csv" 
Which has a format as below: 
Unique CCY Pairs  CCYs 
USDJPY   JPY 
EURAUD   ADEU 
USDRUB   RUB 
AUDKRW   KWAD 
EURUSD   EUR 
AUDJPY   JYAD 
EURJPY   JYEU 

mapp = pd.read_csv(url2) 
mapp = mapp.set_index('Unique CCY Pairs') 
mapp.loc[CCY].values[0] $ 
CCY는

무엇이든 통화가 각 시점에서. 이제 이것을 기반으로 데이터 프레임의 새 CCY 값 열에 매핑 된 값을 제공하는 기존 데이터베이스에서 루프를 만들고 싶습니다.

분명히 작동하지 않는 다음과 같이 시작했습니다. 다음 람다와지도 기능 사이에 갇혀 있어요.

for CCY in data.Underlying: 
data["new"] = mapp.loc[CCY].values[0] 

상기 새로 생성 된 열에 추가 단지 하나의 고유 한 값이되도록 새로운 입력이 부여되는 동안 반복지고 있지 않은 데이터 [ "새로운"]로 작동하지 않았다. 데이터베이스를 상당히 효율적으로 만들 수 있으므로 가능한 한 효율적으로 만들 수있는 방법을 모색 중입니다.

도움을 주셔서 감사합니다.

+0

IIUC을,'데이터 [ "새로운"] = mapp.loc [data.Underlying] .values ' –

답변

0

그것의 매우 예상 출력 무엇인지에 분명하지만, 일반적으로 당신은 루프없이 매핑 할 수 없습니다

data['New'] = data['Underlying'].map(mapp['CCYs']) 

    Underlying Notional New 
0 AUDBRL  50,000  NaN 
1 AUDCAD  100,000  NaN 
2 AUDNZD  20,000  NaN 
3 USDJPY  15,000  JPY 
4 AUDKRW  12,000  KWAD