当我尝试将元组转换为pandas数据帧时,我收到以下错误:
DataFrame构造函数未正确调用!
我正在使用以下代码
columnlist=["Timestamp","Price","Month","Day","DayofWeek","tDaysleftMonth","tDayinMonth","tDayinWeek"]
tickerData=pd.DataFrame(tickerDataRaw,columns=columnlist)
数据已从MySQL数据库
加载到元组请查看数据的屏幕截图。 Data I am trying to convert
答案 0 :(得分:7)
我认为您可以使用DataFrame.from_records
将tuples
转换为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