pandas.DataFrame构造函数中不允许使用元组的元组

时间:2019-02-02 01:50:35

标签: python pandas dataframe

在python3中使用pandas数据框,我试图在元组的元组上调用数据框构造函数。这导致了不正确的构造函数调用错误。快速查阅pandas.DataFrame的文档显示,可以使用numpy ndarray(结构化或同质的),dict或DataFrame初始化数据参数,而Dict可以包含Series,数组,常量或类似列表的对象。 我无法判断出元组无效的元组和有效的元组列表的原因。

我将元组的元组转换为元组列表,并保存了我的屁股。

batch_computer_science = ('r1', 'r2', 'r3', 'r4') #roll number of students
batch_mechanical_engg = ('a1', 'a2', 'a3', 'a4') #roll number of students
session_2018 = (batch_computer_science, batch_mechanical_engg)

#In the actual code there are 8 types of batches with 30 students each, sorted in order of registration in the class.`

session_df = pd.DataFrame(session_2018) # This throws an error, improper constructor called.

我希望tuple的元组起作用,但是tuple的列表起作用,tuple的tuple不起作用。

1 个答案:

答案 0 :(得分:0)

您是对的。元组列表起作用,元组不起作用。

从v0.23.4开始,the source类的pd.DataFrame表示list被视为特殊情况:

elif isinstance(data, (list, types.GeneratorType)):
    if isinstance(data, types.GeneratorType):
        data = list(data)
    if len(data) > 0:
        if is_list_like(data[0]) and getattr(data[0], 'ndim', 1) == 1:
           # ....

因此只需使用元组列表:

session_df = pd.DataFrame(list(session_2018))

请记住,Pandas是一种API,而不是编程语言。此处的详细信息可能会随时更改,恕不另行通知。