清洗未命名:0,未命名:1索引列功能

时间:2019-05-08 15:17:33

标签: python pandas

我有一堆带有额外索引列的数据集,分别称为“未命名:0”,“未命名:1”等,我想创建一个函数来删除这些数据。我的代码如下:

def cleanDf(df):
    '''Remove unwanted index columns from df'''
    for col, row in df.iteritems():
        for i in range(len(df.columns)):
            if ('Unnamed:'+str(' ')+str(i)) == col:
                df = df.drop([col], axis=1)
            else:
                pass
    return df

但是,当我在数据帧上运行它时,索引列仍然存在,但更改为“未命名:0.1”。为什么会这样?

2 个答案:

答案 0 :(得分:1)

您不需要:for col, row in df.iteritems():。试试:

to_drop = [col for col in df.columns if 'Unnamed:' in col]
df = df.drop(to_drop, axis=1)

答案 1 :(得分:1)

或者您可以这样做

df = df[df.columns[~df.columns.str.startswith('Unnamed:')]]

(我一直认为那是笨拙的,但是哦)

我想您也可以.loc

df = df.loc[:,~df.columns.str.startswith('Unnamed:')]