2016-07-01 7 views
2

Angesichts der folgenden Datenrahmen:Pandas Column/Index Werte mit Dollar-Zeichen

import pandas as pd 
df=pd.DataFrame({'A':['$0-$20','$20+']}) 
df 
    A 
0 0−20 
1 $20+ 

Wie kann ich den ersten Wert zu erhalten (0-20) mit den Dollarzeichen anzuzeigen, wie ich angegeben ursprünglich? Es zeigt tatsächlich die Null in einer fremden Schrift und ich bin nicht sicher, warum es für „$ 20 +“, aber nicht „$ 0 -“ funktioniert $ 20"

ich versucht habe.

df=pd.DataFrame({'A':[str('$0-$20'),'$20+']}) 

.. . .aber keine Würfel

Hier ist speziell, was ich bekommen:

enter image description here

ich bin mit dem Jupyter Notebook (Anaconda 3, Python 3.5) Dank in advan ce!

Antwort

1

In Jupyter wird die $0-$ interpretiert als getaggt Latex. Es sieht so aus, als ob Sie in iPython laufen und etwas Ähnliches passiert wahrscheinlich.

enter image description here

Beachten Sie die ungerade Schrift auf dem 0 - und die Bar nach dem -. Ich weiß, dass dieser Balken ein Artefakt eines Mathjax/Chrome-Bugs ist, was mich auszeichnete.

Ihr Dataformat ist intakt. Es zeigt an, dass das ein Problem ist.

tun so etwas wie dies sollte helfen:

import pandas as pd 
df=pd.DataFrame({'A':['$0-$20','$20+']}) 
print df.__repr__() 

     A 
0 $0-$20 
1 $20+ 

Die __repr__ Methode verkörpert, wie ein Objekt angezeigt werden soll, und gibt einen String zurück. Jupyter-Notebook ruft stattdessen _repr_html_ auf und übergibt es über einen HTML-Handler.

+0

Danke. Aber wie würde ich den Wert im Datenrahmen selbst ändern? Ich habe versucht, df = df .__ repr __() –

+0

Ich habe den Beitrag bearbeitet. Ihr Datenrahmen enthält bereits die korrekten Daten. Es ist iPython, das Probleme hat, es anzuzeigen. Tippe 'df.iloc [0, 0]' – piRSquared

+0

Okay, letztendlich versuche ich, den Inhalt der Spalte A in MatPlotLib als X-Achsenbeschriftungen zu verwenden, aber er wird immer noch als solcher angezeigt. Gibt es eine Möglichkeit, dem LaTex in MPL zu entkommen? –