2015-12-02 4 views
1

-je obtenir la liste des noms de colonnes comme suit:Comment obtenir des valeurs de la série en utilisant les noms de colonnes?

featuresA = [str(col) + '_x' for col in group.index] 

où le groupe est la série. Je reçois une liste de 10 noms de colonnes comme 'Col1_x', 'Col2_x', etc.

Maintenant, je veux lire les valeurs de la série dans un objet dataframe:

mergedrow = pd.DataFrame() 
mergedrow[featuresA] = group[featuresA] 

Le message d'erreur dit:

raise KeyError('%s not in index' % objarr[mask]) 

Quand je convertir directement group à l'aide dataframe group.to_frame(), le résultat est 0.

le code complet se présente comme suit:

featuresA = [str(col) + '_x' for col in group.index] 
featuresB = [str(col) + '_y' for col in match.iloc[[idx]].columns] 
mergedrow = pd.DataFrame() 
mergedrow[featuresA] = group[featuresA] 
mergedrow[featuresB] = match.iloc[[idx]] 

MISE À JOUR: Ce est l'ensemble du message d'erreur:

raise KeyError('%s not in index' % objarr[mask]) 
KeyError: "['airportResources.baggage_x' 'airportResources.arrivalTerminal_x'\n 'arrivalAirportFsCode_x' 'operationalTimes.scheduledGateArrival.dateLocal_x'\n 'schedule.flightType_x' 'schedule.serviceClasses_x' 'status_x'\n 'operationalTimes.actualDateTime_x'] not in index" 
+0

Pourriez-vous poster 2 ligne de groupe? 'mergedrow [featuresA] = groupe [featuresA]' En réalité, votre dataframe n'est pas encore créé, donc quand vous utilisez 'mergedrow [featuresA]', une erreur de clé est déclenchée. – WoodChopper

Répondre

0

Series.values donne les valeurs pour vous de créer dataframe.

Si vous essayez de convertir série à une ligne dataframe vous pourriez faire comme ça,

import pandas as pd 

In [33]: group 
Out[33]: 
a 0.316286 
b -0.338733 
c -1.050260 
d -0.365461 
e 0.996902 
dtype: float64 

In [34]: group.index 
Out[34]: Index([u'a', u'b', u'c', u'd', u'e'], dtype='object') 

In [35]: group.values 
Out[35]: array([ 0.31628576, -0.33873327, -1.05026027, -0.3654615 , 0.99690196]) 

In [38]: featuresA = [str(col) + '_x' for col in group.index] 

In [39]: df = pd.DataFrame([group.values], columns = featuresA) 

In [40]: df 
Out[40]: 
    a_x  b_x  c_x  d_x  e_x 
0 0.316286 -0.338733 -1.05026 -0.365461 0.996902