2017-05-09 8 views
-1

Ich habe diesen Datenrahmen: enter image description hereWie setze ich den Wert eines Datenrahmens in Array-Form?

Ich wünsche haben Extrakt die Daten für Wert-Spalte in Form von Array, das die Ausgabe sein sollte: [nan, 47, 47,9, 48,6]

Kann mir jemand die Ideen mitteilen?

+0

Mögliche Duplikat [get Liste von Pandas Datenrahmen Spalte] (http://stackoverflow.com/questions/22341271/get-list-from-pandas-dataframe-column) – McGrady

Antwort

2

Verwenden values für numpy array + numpy.ndarray.tolist für list:

L = df['value'].values.tolist() 
#alternative 
#L = df['value'].tolist() 

Oder konvertieren list:

L = list(df['value']) 

EDIT:

Es scheint, Sie zu float zuerst von astype konvertieren müssen:

df = pd.DataFrame({'value':['nan','47','47.9','48.6']}) 
print (df) 
    value 
0 nan 
1 47 
2 47.9 
3 48.6 

L1 = df['value'].values.tolist() 
print (L1) 
['nan', '47', '47.9', '48.6'] 

L2 = df['value'].astype(float).values.tolist() 
print (L2) 
[nan, 47.0, 47.9, 48.6] 

denn wenn float alle Werte unterschiedlichen Ausgang bekommen - 47.0 nicht 47:

df = pd.DataFrame({'value':[np.nan,47,47.9,48.6]}) 
    value 
0 NaN 
1 47.0 
2 47.9 
3 48.6 

L = df['value'].values.tolist() 
print (L) 
[nan, 47.0, 47.9, 48.6] 

EDIT1:

Wenn astype Rückkehr Fehler zB:

ValueError: could not convert string to float: 'a'

dann müssen to_numeric mit dem Parameter errors='coerce' für konvertieren nicht numerisch NaN

df = pd.DataFrame({'value':[np.nan,47,47.9,48.6, 'a']}) 
print (df) 
    value 
0 NaN 
1 47 
2 47.9 
3 48.6 
4  a 

print (pd.to_numeric(df['value'], errors='coerce')) 
0  NaN 
1 47.0 
2 47.9 
3 48.6 
4  NaN 
Name: value, dtype: float64 

L = pd.to_numeric(df['value'], errors='coerce').values.tolist() 
print (L) 
[nan, 47.0, 47.9, 48.6, nan] 
Verwandte Themen