我一直在工作中进行数据清理,但是仅在一个月的数据上就遇到了此错误。我已经清理了1月,2月,4月和5月的所有数据。不知道为什么该文件不能以与实际上相同的设置和所有方式工作。我不断收到此错误,有人碰巧知道为什么吗?
代码基本上是从Excel工作表中获取数据并根据标题确定它是SSD,HDD等。
例如标题:“ DISCO SOLIDO SSD 240GB” 输出:“ SSD”
它适用于我运行的所有其他文件,但是一个月的数据之一不起作用。
Traceback (most recent call last):
File "__", line 55, in <module>
df['Product_Category'] = df.apply(lambda row: 'SSD' if prod_cat_ssd.search(row.Titulo_Publicacion) else row.Product_Category, axis=1)
File "__", line 6878, in apply
return op.get_result()
File "__", line 186, in get_result
return self.apply_standard()
File "__", line 296, in apply_standard
values, self.f, axis=self.axis, dummy=dummy, labels=labels
File "pandas\_libs\reduction.pyx", line 620, in pandas._libs.reduction.compute_reduction
File "pandas\_libs\reduction.pyx", line 128, in pandas._libs.reduction.Reducer.get_result
File "C:/Users/1000266230/PycharmProjects/Excel/reg_ex.py", line 55, in <lambda>
df['Product_Category'] = df.apply(lambda row: 'SSD' if prod_cat_ssd.search(row.Titulo_Publicacion) else row.Product_Category, axis=1)
TypeError: expected string or bytes-like object
这是我的代码:
df['Product_Category'] = '-'
df['Product_Category'] = df['Product_Category'].apply(str)
prod_cat_ssd = re.compile(r'\bSOLIDO\b|\bSSD\b|\bSóLIDO\b')
prod_cat_hdd = re.compile(r'\bDURO\b|\bRIGIDO\b|\bRÃGIDO\b|\bRIGIDOS\b|\bHDD\b')
prod_cat_external_ssd = re.compile(r'\b(EXTERNO|EXTREME)\b.*\b(SOLIDO|SSD|SóLIDO)\b|\b(SOLIDO|SSD|SóLIDO)\b.*\b(EXTERNO|EXTREME)\b')
prod_cat_external_hdd = re.compile(r'\b(EXTERNO|EXTREME)\b.*\b(DURO|RIGIDO|RIGIDOS|RÃGIDO|HDD)\b|\b(DURO|RIGIDO|RIGIDOS|RÃGIDO|HDD)\b.*\b(EXTERNO|EXTREME)\b')
df['Product_Category'] = df.apply(lambda row: 'SSD' if prod_cat_ssd.search(row.Titulo_Publicacion) else row.Product_Category, axis=1)
df['Product_Category'] = df.apply(lambda row: 'HDD' if prod_cat_hdd.search(row.Titulo_Publicacion) else row.Product_Category, axis=1)
df['Product_Category'] = df.apply(lambda row: 'External SSD' if prod_cat_external_ssd.search(row.Titulo_Publicacion) else row.Product_Category, axis=1)
df['Product_Category'] = df.apply(lambda row: 'External HDD' if prod_cat_external_hdd.search(row.Titulo_Publicacion) else row.Product_Category, axis=1)
**请不要介意西班牙语单词或特殊字符。
任何帮助将不胜感激!
答案 0 :(得分:0)
将熊猫行中不是字符串的所有属性转换为字符串,例如:row.Product_Category
到str(row.Product_Category)
。