python .apply()抛出ValueError:无法从重复的轴重新索引

时间:2018-01-21 09:15:01

标签: python pandas dataframe

我有一个数据框,我正在尝试进行一些字符串检查,但是我收到此错误ValueError: cannot reindex from a duplicate axis

这是什么意思?

代码:

#get name titles
def process_name(name):

    if 'Mr' in name:
        return 'Mr'
    elif ('Mrs' in name) or ('Miss' in name):
        return 'Mrs'
    elif 'Master' in name:
        return 'Ms'
    else:
        return 'Other'


df['Name_Title']=df['Name'].apply(process_name)

数据帧:

enter image description here

2 个答案:

答案 0 :(得分:0)

看起来你有重复的索引。您可以使用Index上的.duplicated方法找到它们。要么:

1。使用现有索引设置新列:

df['Name_Title'] = df['Name'].apply(process_name).values

2。重置索引并按以前的步骤继续:

df = df.reset_index()
df['Name_Title'] = df['Name'].apply(process_name)

注意:除非你有充分的理由在pandas DataFrame中索引应该是不同的。

答案 1 :(得分:0)

问题是由于我的功能错位,必须在对数据帧或其结构进行任何其他修改之前放置,或者作为第一次修改。