2017-05-31 9 views
1

Ich habe einen Datenrahmen voller Nullen wie geschaffen:Anwenden von Spaltennamen Datenrahmen Pandas, Namen nicht mehr Unicode

 0 1 2 
0  0 0 0 
1  0 0 0 
2  0 0 0 
... 
n  0 0 0 

Ich habe eine Liste Namen für die Spalte in Unicode enthält, wie zum Beispiel: list = [u'One', u'Two', u'Three']

die Datenrahmen von Nullen als a, bekannt und ich mit der Liste als Spaltenüberschriften über einen neuen kompletten Datenrahmen erschaffe:

final = pd.DataFrame(a, columns=[list])

Der resultierende DataFrame hat jedoch Spaltennamen, die nicht mehr Unicode sind (d. H. Sie zeigen nicht das U-Tag.

Ich frage mich, warum das passiert. Vielen Dank!

+0

Wenn überprüfen 'print df.columns.tolist()' kein Unicode? – jezrael

+0

Es ist Unicode nach diesem Check - mein anderer Datensatz hat leider übrig gebliebene 'u''' Tags in Spaltennamen, die mich glauben lassen, dass dies ein Problem war. Vielen Dank! – Kam

+1

Verwenden Sie _list_ nicht als Variablennamen. Es ist der Name eines Listenkonstruktors. – DyZ

Antwort

2

Es gibt keinen Grund für verlorene Unicode, können Sie es durch überprüfen:

print df.columns.tolist() 

Bitte nie reservierte Worte wie list, type, id ... als Variablen, weil integrierte Funktionen zu maskieren. Auch ist notwendig Add values für convert Werte numpy array:

a = pd.DataFrame(0, columns=range(3), index=range(3)) 
print (a) 
    0 1 2 
0 0 0 0 
1 0 0 0 
2 0 0 0 

L = [u'One', u'Two', u'Three'] 
final = pd.DataFrame(a.values, columns=L) 
print (final) 
    One Two Three 
0 0 0  0 
1 0 0  0 
2 0 0  0 

weil Spalten nicht ausgerichtet sind, und erhalten Sie alle NaN s:

final = pd.DataFrame(a, columns=L) 
print (final) 
    One Two Three 
0 NaN NaN NaN 
1 NaN NaN NaN 
2 NaN NaN NaN 

Ich denke simpliest ist nur Index a DataFrame verwenden, wenn alle Werte 0 :

L = [u'One', u'Two', u'Three'] 
final = pd.DataFrame(0, columns=L, index=a.index) 
print (final) 
    One Two Three 
0 0 0  0 
1 0 0  0 
2 0 0  0 
Verwandte Themen