2017-05-19 4 views
0

Ich versuche, einen Pandas DataFrame aus einigen Textdaten zu erstellen, die ich überspringe (es ist ein Dump von vielen JSON-Strings aus einer API).Pandas DataFrame-Typen werden nicht automatisch festgelegt

Einige der Daten sind kleine Zahlen, zB 0.00000001. Ich verwende den Python-Dezimal-Typ für diese an anderer Stelle in einer anderen App. Ich bin mir nicht sicher, wie ich die Pandas dazu bringen soll zu erkennen, dass es sich um Dezimalzahlen handelt. Ob ich zuerst Decimal-Objekte von ihnen erzeuge oder einen DataFrame nur aus den Strings erstelle, Pandas erzeugt generische object Spalten. Es gibt andere Spalten mit unterschiedlichen Formaten.

ein einfaches Beispiel nehmen:

import pandas as pd 
df = pd.DataFrame([Decimal('0.01'),]) 
df.dtypes 

Ausgänge:

0 object 
dtype: object 

Soll ich die Dezimal-Typ sein mit? Verstehe ich etwas grundsätzlich falsch?

Danke.

Antwort

0

Need type für den Check Decimal:

from decimal import Decimal 
import pandas as pd 
df = pd.DataFrame([Decimal('0.01'),]) 
print (df) 
     0 
0 0.01 

print (type(df.loc[0, 0])) 
<class 'decimal.Decimal'> 

pandas erkennen nur einige dtypes wie int, float ..., alle anderen object s (string s, list s, Decimal s).

Ich denke, Sie können relative beantworten.

+0

Ah, so ist es kein Problem. Ich hätte den ganzen Tag den Kopf dagegen stoßen können - Danke für Ihre Hilfe! – Ludo

+0

Froh kann helfen. Schönes Wochenende! – jezrael

Verwandte Themen