我的代码在以前的数据集上工作,现在停止工作。我查看了这个错误消息的其他答案,但没有一个适用于我的。Python Pandas索引错误:列表索引超出范围
我在我的数据框df中有一列用于Email_Address,我想将这个域分割成新的列。
我的数据框是以前的df的子集。
#create new df, for only email addresses I need to review
df = df_raw.loc[df_raw['Review'] == 'Y'].copy()
#I reset the index to fix the problem, but it didnt help
df = df.reset_index(drop=True)
#ensure Email Address is a string
df['Email_Address']= df.Email_Address.apply(str)
#make Email Address lower case
df['email_lowercase'] = df['Email_Address'].str.lower()
#Split out domain into a new column
df['domain'] = df['email_lowercase'].apply(lambda x: x.split('@')[1])
IndexError: list index out of range
这可能意味着,符号'@'没有按不存在于你的一个单元格中,因此你不能访问“@”后面的电子邮件部分。有时用户输入“at”而不是“@”,因此它们不能被机器人追踪。你检查过吗? – ysearka
林不知道,但尝试改变这个'df ['Email_Address'] = df.Email_Address.apply(str)'这个'df ['Email_Address'] = df.Email_Address.astype(str)'也可能你有非在'@'后面的某些行上没有数据会导致数据失败的清理数据。检查一下。没有代表'df'的 –
,不可能重现你的错误。请提供一个[MVCE](https://stackoverflow.com/help/mcve) – C8H10N4O2