Python 3.x 为分类变量(Pandas)的每个级别创建新的数据帧

Python 3.x 为分类变量(Pandas)的每个级别创建新的数据帧,python-3.x,pandas,Python 3.x,Pandas,我有一个3个不同级别的分类变量。变量的每个级别都指向不同的组(小、中、大) 我想为每个级别创建新的数据帧。一个用于小型,一个用于中型,一个用于大型 我试着用下面的代码做这个 组1=数据([数据[“分类变量”]=“小”]) 然而,我得到了下面的错误信息,我不知道为什么我会看到这个 AttributeError:'Series'对象没有属性“convert\u objects” 谢谢大家! 这里建议使用并保存在字典中 groups = dict(data.groupby("categori

我有一个3个不同级别的分类变量。变量的每个级别都指向不同的组(小、中、大)

我想为每个级别创建新的数据帧。一个用于小型,一个用于中型,一个用于大型

我试着用下面的代码做这个

组1=数据([数据[“分类变量”]=“小”])

然而,我得到了下面的错误信息,我不知道为什么我会看到这个

AttributeError:'Series'对象没有属性“convert\u objects”


谢谢大家!

这里建议使用并保存在字典中

groups = dict(data.groupby("categorical_variable").__iter__())

#print(groups['Small'])
#print(groups['Medium'])
如果确实需要三个单独的变量,请注意
GroupBy

 large_df, medium_df, small_df = tuple(df for _, df in data.groupby("categorical_variable"))
试试这个:

small_df = data.loc[data["categorical_variable"]=="Small", :]
medium_df = data.loc[data["categorical_variable"]=="Medium", :]
large_df = data.loc[data["categorical_variable"]=="Large", :]

这是缓慢的,不推荐我同意如果有很多变量,但对于三个变量,我认为这种方法是好的,并且对正在发生的事情是显而易见的。此外,OP应该更熟悉它,因为这是他尝试采用的方法。不需要创建字典,我们也可以将它分配给groupby中的独立数据帧。。。。使用loc的方法需要更多的线路,并且不可扩展。正如我所说,我同意。如果OP是熊猫的新手,这只是另一种可能对他有意义的方法。在我看来,这是一种不好的做法,不应该学习