2016-05-02 3 views
-3

ich einen Datenrahmen namens stockData (bitte unten für die .head() e):Zyklus durch Spalten einer Datenrahmen eine Aktion auf bestimmte benannte Spalten Durchführung

stockData    BBG.XLON.BTA.S_LAST BBG.XLON.BTA.S_VOLUME BBG.XLON.BTA.S_MKTCAP \ 
date                    
2008-01-04    265.00    38773846    21184.6422 
2008-01-07    264.00    68107684    21104.7001 
2008-01-08    277.75    113809490    22184.2614 
2008-01-09    272.00    47890229    21723.9135 
2008-01-10    276.75    40391750    22102.3023 

      BBG.XLON.BTA.S_VWAP BBG.XLON.BTA.S_CLOSE \ 
date              
2008-01-04    268.4860     NaN 
2008-01-07    263.6428     NaN 
2008-01-08    272.2632     NaN 
2008-01-09    271.4513     NaN 
2008-01-10    275.3315     NaN 

      BBG.XLON.BTA.S_LAST_ADJ BBG.XLON.BTA.S_VOLUME_ADJ \ 
date                
2008-01-04      NaN      NaN 
2008-01-07      NaN      NaN 
2008-01-08      NaN      NaN 
2008-01-09      NaN      NaN 
2008-01-10      NaN      NaN 

      BBG.XLON.BTA.S_EXCHANGE_HOLIDAY BBG.XLON.BTA.S_CORP_ACTION \ 
date                  
2008-01-04        NaN       NaN 
2008-01-07        NaN       NaN 
2008-01-08        NaN       NaN 
2008-01-09        NaN       NaN 
2008-01-10        NaN       NaN 

      BBG.XLON.BTA.S_REPORTING   ...    \ 
date           ...    
2008-01-04      NaN   ...    
2008-01-07      NaN   ...    
2008-01-08      NaN   ...    
2008-01-09      NaN   ...    
2008-01-10      NaN   ...    

      BBG.XLON.VOD.S_LAST_ADJ BBG.XLON.VOD.S_VOLUME_ADJ \ 
date                
2008-01-04      NaN      NaN 
2008-01-07      NaN      NaN 
2008-01-08      NaN      NaN 
2008-01-09      NaN      NaN 
2008-01-10      NaN      NaN 

      BBG.XLON.VOD.S_EXCHANGE_HOLIDAY BBG.XLON.VOD.S_CORP_ACTION \ 
date                  
2008-01-04        NaN       NaN 
2008-01-07        NaN       NaN 
2008-01-08        NaN       NaN 
2008-01-09        NaN       NaN 
2008-01-10        NaN       NaN 

      BBG.XLON.VOD.S_REPORTING BBG.XLON.VOD.S_FX \ 
date              
2008-01-04      NaN    NaN 
2008-01-07      NaN    NaN 
2008-01-08      NaN    NaN 
2008-01-09      NaN    NaN 
2008-01-10      NaN    NaN 

      BBG.XLON.VOD.S_LAST_EUR BBG.XLON.VOD.S_MKTCAP_EUR \ 
date                
2008-01-04      NaN      NaN 
2008-01-07      NaN      NaN 
2008-01-08      NaN      NaN 
2008-01-09      NaN      NaN 
2008-01-10      NaN      NaN 

      BBG.XLON.VOD.S_VWAP_EUR BBG.XLON.VOD.S_CLOSE_EUR 
date               
2008-01-04      NaN      NaN 
2008-01-07      NaN      NaN 
2008-01-08      NaN      NaN 
2008-01-09      NaN      NaN 
2008-01-10      NaN      NaN 

Ich versuche, durch jede Spalte Zyklus, hat am Ende des Spaltennamens entweder '_LAST' oder '_VWAP'. Auf diesen Spalten muss ich jeden Wert durchlaufen. Ich habe versucht, dies in dem unten stehenden Code zu tun, kann aber die Spaltenkennung für den Datenbestand stockData nicht finden und auf die Variable 'priceIdentifier' setzen.

Könnte jemand bitte zeigen, wie ich das mache und bitte die gewünschten Datenframes Spalten durchlaufen.

Vielen Dank

+0

Es ist nicht klar, was Sie zu tun versuchen. Kannst du genauer sein? Gibt Ihr aktueller Code eine Fehlermeldung? – IanS

Antwort

1
priceIdentifier == '*_LAST' or priceIdentifier == '*_VWAP' 

wird nicht funktionieren. Sie können "reguläre Ausdrücke" verwenden

import re # please import this 


def putCorpActions(stockData,corpActionData): 


    for y, row in corpActionData.iterrows(): 

     identifier = row['unique_id'] 
     #corpDate = row['date'] 
     corpDate = y 
     factor_value = row['factor_value'] 
     reference = row['reference'] 
     factor= row['factor'] 



     for columns in stockData: 

       priceIdentifier = row[columns] 
       rstr = r'.*_(LAST|VWAP)' 
       if re.match(rstr, priceIdentifier) # regular expression matching 
        for z, row in stockData.iterrows(): 
         price = row[] 
         #cycle trough the column doing something 
+0

Oder 'endswith', wenn Sie bereit sind, zwei Bedingungen anstelle von einem zu schreiben ... – IanS

+0

Danke piRSquared. Ich erhalte KeyError: 'BBG.XLON.BTA.S_LAST' in der Zeile priceIdentifier = row [columns]. Irgendwelche Ideen wie zu beheben? Danke – Stacey

+0

Das heißt, Sie versuchen, die Zeichenfolge "BBG.XLON.BTA.S_LAST" als Schlüssel in einem Wörterbuch oder Datenframe zu verwenden, und es existiert nicht. Ich müsste mehr Kontext haben. – piRSquared

Verwandte Themen