在分类列上过滤Dask Dataframe?

时间:2018-09-04 23:30:52

标签: python pandas dask

说我有一个大型的水果数据框架。我有数千行,但只有大约30个唯一的水果名称,因此我将该列设为类别:

df['fruit_name'] = df.fruit_name.astype('category')

现在这是一个类别,我可以不再过滤它吗?例如,

df_kiwi = df[df['fruit_name'] == 'kiwi']

将返回TypeError(“无效类型比较”)

如果我尝试创建一个“虚拟”数据框并与之合并,则会收到ValueError:“您正在尝试在int8和category列上合并...”

df_dummy = pd.DataFrame(data={'fruit_name': 'kiwi'}, index=range(1))
df_dummy['fruit_name'] = df_dummy.fruit_name.astype('category')

df_new = df.merge(df_dummy, how="inner", on="fruit_name")

我是否会在分类列上丢失某些合并和过滤器功能,还是我做错了这个(对于dask和pandas来说我还是很陌生)。谢谢!

1 个答案:

答案 0 :(得分:1)

以下是显示此方法运行良好的示例:

enter code here

我建议构造一个minimal failing example