2016-06-16 7 views
5

Umwandlung Wenn ich versuche, Tupeln zu konvertieren Datenrahmen Pandas ich die folgende Fehlermeldung erhalten:Fehler beim Tupeln Pandas Dataframe

DataFrame constructor not properly called!

ich den folgenden Code verwende

columnlist=["Timestamp","Price","Month","Day","DayofWeek","tDaysleftMonth","tDayinMonth","tDayinWeek"] 
tickerData=pd.DataFrame(tickerDataRaw,columns=columnlist) 

Die Daten geladen wurde Tupel aus einer MySQL-Datenbank,

Finden Sie einen Screenshot der Daten. Data I am trying to convert

+0

Ich verwende den folgenden Code column = [ "Timestamp", "Preis", "Monat", "Tag", "DAYOFWEEK", "tDaysleftMonth", "tDayinMonth", "tDayinWeek"] tickerData = pd.DataFrame (tickerDataRaw, columns = columnlist) –

+0

Wenn meine Antwort hilfreich war, vergiss nicht [accept] (https://stackoverflow.com/help/someone-answers) es - klicke auf das Häkchen ('v ') neben der Antwort, um es von ausgegraut auf ausgefüllt zu schalten. Danke. – jezrael

Antwort

6

ich glaube, Sie DataFrame.from_records mit der Umwandlung von tuples zu list verwenden können:

import pandas as pd 

tuples = ((1,2,3),(4,6,7),(7,3,6),(8,2,7),(4,6,3),(7,3,6)) 

columnlist = ['a','b','c'] 
df = pd.DataFrame.from_records(list(tuples), columns=columnlist) 
print (df) 
    a b c 
0 1 2 3 
1 4 6 7 
2 7 3 6 
3 8 2 7 
4 4 6 3 
5 7 3 6 

Eine andere Lösung mit DataFrame Konstruktor nur:

import pandas as pd 

tuples = ((1,2,3),(4,6,7),(7,3,6),(8,2,7),(4,6,3),(7,3,6)) 

columnlist = ['a','b','c'] 
df = pd.DataFrame(list(tuples), columns=columnlist) 
print (df) 
    a b c 
0 1 2 3 
1 4 6 7 
2 7 3 6 
3 8 2 7 
4 4 6 3 
5 7 3 6 

EDIT:

Wenn Prüfung DataFrame und Parameter data :

data : numpy ndarray (structured or homogeneous), dict, or DataFrame

Dict can contain Series, arrays, constants, or list-like objects

+0

Wenn meine oder die 'Matt07'-Antwort hilfreich war, vergiss [accept] (http://meta.stackexchange.com/a/5235/295067) nicht. Vielen Dank. – jezrael

0

Nach dem Dataframe documentation page werden Daten erforderlich

numpy ndarray (structured or homogeneous), dict, or DataFrame

Der einfachste Weg, um zu lösen Ihr Problem Ihre Daten in einem numpy Array simplty laden und es sollte funktionieren.

>>> tuples = ((1,2,3),(1,2,3),(1,2,3)) 
>>> columns = ["A", "B", "C"] 
>>> pd.DataFrame(tuples, columns=columns) 
PandasError: DataFrame constructor not properly called! 

>>> pd.DataFrame(np.array(tuples), columns=columns) 
    A B C 
0 1 2 3 
1 1 2 3 
2 1 2 3