在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不起作用。
答案 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,而不是编程语言。此处的详细信息可能会随时更改,恕不另行通知。