将元组转换为Pandas DataFrame时出错

时间:2016-06-16 14:29:46

标签: python pandas dataframe tuples

当我尝试将元组转换为pandas数据帧时,我收到以下错误:

  

DataFrame构造函数未正确调用!

我正在使用以下代码

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

数据已从MySQL数据库

加载到元组

请查看数据的屏幕截图。 Data I am trying to convert

2 个答案:

答案 0 :(得分:7)

我认为您可以使用DataFrame.from_recordstuples转换为list

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

  

数据:numpy ndarray(结构化或同类),dict或DataFrame

     

Dict可以包含系列,数组,常量或类似列表的对象

答案 1 :(得分:0)

根据Dataframe documentation page,数据必须是

  

numpy ndarray(结构化或同类),dict或DataFrame

解决问题的最简单方法是简单地将数据加载到 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