我正在尝试使用以下脚本将列表中的所有值转换为小写:
def Data_Cleanse(Data_IMP):
# Import Data_IMP file
# Drop the EventTime, and EventID columns
Data_Cleanse = Data_IMP.drop(columns = ["eventId","eventTime"])
res = [sub.replace('.', ' - ') for sub in Data_Cleanse]
res = [sub.replace("organization", "organisation") for sub in res]
for i in res:
res = res.str.lower[i]
Data_Cleanse.columns = res
return Data_Cleanse
脚本在进入 for 循环之前运行良好。当它到达这一点时,我收到以下错误:
属性错误:"列表"对象没有属性"str">
res 输出文件的示例如下所示:
["地址日期", "出生国家", "出生日期", "出生地", "分支", 'brokerCode', 'businessEmail', 'businessPhoneNumber']
关于如何解决此错误的任何建议?
这是不正确的,这不是列表在Python中的工作方式:
for i in res:
res = res.str.lower[i]
我相信你的意思是这样做:
for i in range(len(res)):
res[i] = res[i].lower()
或者更好的是,这个 - 使用列表推导
:res = [s.lower() for s in res]
您的原始错误可能是因为您尝试在要在pandas.Series
对象上运行的列表上运行代码。实际上,您可以通过在单个列表推导中链接其中一些字符串操作来简化脚本。像这样:
res = [sub.replace('.', ' - ').replace("organization", "organisation").lower() for sub in Data_Cleanse]