为分类变量(熊猫)的每个级别创建新的数据框

时间:2020-09-26 11:41:08

标签: python-3.x pandas

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

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

我尝试使用下面的代码来做到这一点...

group1 = data([data [“ categorical_variable”] ==“ Small”])

但是,我收到以下错误消息,我不确定为什么会看到此消息吗?

AttributeError:“系列”对象没有属性“ convert_objects”

谢谢!

2 个答案:

答案 0 :(得分:0)

这里推荐使用this并保存在字典中

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

#print(groups['Small'])
#print(groups['Medium'])

如果您确实需要三个单独的变量,请在sort=True中注意GroupBy

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

答案 1 :(得分:0)

尝试一下:

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