【问题标题】:getting type error : expected string or bytes-like object获取类型错误:预期的字符串或类似字节的对象
【发布时间】:2019-12-13 03:43:18
【问题描述】:

我正面临一个挑战,我试图使用 python 中的正则表达式来清理我的数据集中的列。该列是对象类型,当我使用以下代码时,出现此错误:预期字符串或类似字节的对象

import re 
def clean_str(string):
    """
    Tokenization/string cleaning for dataset
    Every dataset is lower cased except
    """
    string = re.sub(r"\n", "", string)    
    string = re.sub(r"\r", "", string) 
    string = re.sub(r"[0-9]", "digit", string)
    string = re.sub(r"\'", "", string)   
    string = re.sub(r"\"", "", string)    
    return string.strip().lower()
X = []
for i in range(df.shape[0]):
    X.append(clean_str(df.iloc[i][1])) #0,1,2,3
y = np.array(df["Standardpositionsname"])

【问题讨论】:

  • 请正确缩进您的代码。就目前而言,代码是不可读的。
  • 现在可以看了吗?
  • 天哪,不。换一种方式更好。错误信息中是否有行号?
  • 我应该共享回溯调用吗?这会有帮助吗?
  • 当然。而且总是。

标签: python regex python-3.x jupyter-notebook


【解决方案1】:

我认为X.append(clean_str(df.iloc[i][1])) 必须将参数转换为字符串类型 像这样

X.append(clean_str(str(df.iloc[i][1])))

【讨论】:

    猜你喜欢
    • 2017-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-19
    • 2020-08-24
    • 2017-09-29
    相关资源
    最近更新 更多