在我的定性变量列上进行分类
Make categories on my qualitative variable column
我需要将定性变量分类:
例如:在我的定性专栏之一(“包装”)上,
我必须将所有塑料数据(如“塑料”、“薄膜塑料”)fr-film_plastic 归入“塑料”类别。
我必须制作几个类别,例如塑料、纸板、金属。
我用str.extract
解决了这个问题,但是多维键有问题。
plastique = data.loc[data['packaging_tags'].str.contains("plas", regex= True, na=False)]
>>> print(plastique['packaging_tags'].unique().tolist())
'teabag-in-plastic-in-cardboard-box', 'plastic-pouch', 'plastica', 'clamshell,plastic,fresh', 'plastic,hdpe', 'bolsa,plastico', 'en-mixed-plastic-bag,en-pet-lid', 'carton,metal,plastic,tray,en-card-box,en-pet-tray', 'en-mixed-plastic-sleeve', 'empaque-de-plastico', 'en-mixed-plastic-packet,en-pet-tray', 'sacchetto-di-plastica', 'carton,glass,plastic', 'en-card-box,en-mixed-plastic-film', 'en-card-box,en-mixed-plastic-wrapper', 'en-glass-jar,en-other-plastic-cap', 'en-mixed-plastic-unknown'
在使用 str.extract
或 str.contains
时,我得到 ValueError
:
plastique = data.loc[data['packaging_tags'].str.extract("([^,']{0,15}plas[^,']{1,30})")]
>>> print(plastique['packaging_tags'].unique().tolist())
ValueError: Cannot index with multidimensional key
然后我想制作一个要使用的组的字典:
dict_col = {'Carton': data.loc[data['packaging_tags'].str.extract("([^,]{0,15}car[^,]{1,30})")],
'Plastique':data.loc[data['packaging_tags'].str.extract("([^, ]{0,15}plas[^,]{1,30})"]}
d = {k: oldk for oldk, oldv in dict_col.items() for k in oldv}
data['packaging_tags'] = data['packaging_tags'].map(d)
可能是这样的:
import numpy as np
cond = [
df['packaging_tags'].str.contains(('^plas$'), case=False, regex=True),
df['packaging_tags'].str.contains(('^met$'), case=False, regex=True),
df['packaging_tags'].str.contains(('^card$'), case=False, regex=True)
]
choice = ['PLASTIC', 'METAL', 'CARDBOARD']
data['cat_var'] = np.select(cond, choice)
我需要将定性变量分类: 例如:在我的定性专栏之一(“包装”)上, 我必须将所有塑料数据(如“塑料”、“薄膜塑料”)fr-film_plastic 归入“塑料”类别。
我必须制作几个类别,例如塑料、纸板、金属。
我用str.extract
解决了这个问题,但是多维键有问题。
plastique = data.loc[data['packaging_tags'].str.contains("plas", regex= True, na=False)]
>>> print(plastique['packaging_tags'].unique().tolist())
'teabag-in-plastic-in-cardboard-box', 'plastic-pouch', 'plastica', 'clamshell,plastic,fresh', 'plastic,hdpe', 'bolsa,plastico', 'en-mixed-plastic-bag,en-pet-lid', 'carton,metal,plastic,tray,en-card-box,en-pet-tray', 'en-mixed-plastic-sleeve', 'empaque-de-plastico', 'en-mixed-plastic-packet,en-pet-tray', 'sacchetto-di-plastica', 'carton,glass,plastic', 'en-card-box,en-mixed-plastic-film', 'en-card-box,en-mixed-plastic-wrapper', 'en-glass-jar,en-other-plastic-cap', 'en-mixed-plastic-unknown'
在使用 str.extract
或 str.contains
时,我得到 ValueError
:
plastique = data.loc[data['packaging_tags'].str.extract("([^,']{0,15}plas[^,']{1,30})")]
>>> print(plastique['packaging_tags'].unique().tolist())
ValueError: Cannot index with multidimensional key
然后我想制作一个要使用的组的字典:
dict_col = {'Carton': data.loc[data['packaging_tags'].str.extract("([^,]{0,15}car[^,]{1,30})")],
'Plastique':data.loc[data['packaging_tags'].str.extract("([^, ]{0,15}plas[^,]{1,30})"]}
d = {k: oldk for oldk, oldv in dict_col.items() for k in oldv}
data['packaging_tags'] = data['packaging_tags'].map(d)
可能是这样的:
import numpy as np
cond = [
df['packaging_tags'].str.contains(('^plas$'), case=False, regex=True),
df['packaging_tags'].str.contains(('^met$'), case=False, regex=True),
df['packaging_tags'].str.contains(('^card$'), case=False, regex=True)
]
choice = ['PLASTIC', 'METAL', 'CARDBOARD']
data['cat_var'] = np.select(cond, choice)