2016-06-16 192 views
5

当我尝试转换的元组到大熊猫数据帧我得到以下错误:出错转换的元组到大熊猫数据帧

DataFrame constructor not properly called!

我使用下面的代码

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

的数据加载到来自MySQL数据库的元组,

请找到数据的屏幕截图。 Data I am trying to convert

+0

我使用以下代码 columnlist = [ “时间戳”, “价格”, “月”, “日”, “星期几”, “tDaysleftMonth”, “tDayinMonth”, “tDayinWeek”] tickerData = pd.DataFrame(tickerDataRaw,columns = columnlist) –

+0

如果我的回答很有帮助,请不要忘记[接受](https://stackoverflow.com/help/someone-answers) - 点击复选标记('v ')旁边的答案切换从灰色到填充。谢谢。 – jezrael

回答

6

我认为你可以使用DataFrame.from_records与转换tupleslist

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 

只有DataFrame构造另一种解决方案:

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 

编辑:

如果检查DataFrame和参数data

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

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

+0

如果我或'Matt07'的回答很有帮助,请不要忘记[接受](http://meta.stackexchange.com/a/5235/295067)它。谢谢。 – jezrael

0

按照Dataframe documentation page,数据要求是

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

最简单的方法来解决你的问题是simplty在numpy的阵列加载数据,它应该工作的罚款。

>>> 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