Python - 在评估字符串匹配时输入错误

时间:2016-07-05 13:45:26

标签: python pandas

我正在尝试规范化一些数据。在我的数据框中,如果列以相同的前缀开头,则它们属于一起(fe。var Calendar = { e: $('#calendar'), views: { agendaDay: { defaultView: 'agendaDay', slotDuration: '00:15:00', minTime: '00:00:00', maxTime: '20:00:00', header: { right: 'prev,next today', left: 'title' } }, agendaWeek: { defaultView: 'agendaWeek', slotDuration: '00:30:00', minTime: '09:00:00', maxTime: '17:00:00', header: { left: 'prev,next today', center: 'title', right: 'agendaDay,agendaWeek,month' } } }, resize: function() { if (Calendar.whichView($(document).width()) !== Calendar.e.fullCalendar('getView')) { Calendar.e.fullCalendar('destroy'); Calendar.init(); } }, whichView: function(width) { if (width < 601) { return 'agendaDay'; } else { return 'agendaWeek'; } }, init: function() { Calendar.e.fullCalendar(Calendar['views'][Calendar.whichView($(document).width())]); } } $(function() { Calendar.init(); $(window).resize(Calendar.resize); }); ab_000属于一起,但ab_001不属于前两个)。所以我试图用l1规范化来标准化所属列。为此,我写了:

ac_000

但是,在评论标记的行中,我收到错误:

def normalize(df):
    data = df.copy()
    to_work_with = []
    for i in range(0, len(data.columns) - 1):
        for j in range(0, len(data.columns) -1 ):  
            if data.columns[i][:2] == data.columns[j][:2]:  # error here
                to_work_with.append(data.columns[j])
        data[to_work_with] = nr(data[to_work_with],axis=1, norm='l1')
        to_work_with = []
    return data

如果我只是跑

TypeError: 'int' object has no attribute '__getitem__'

它返回data.columns[1][:2] == data.columns[2][:2] ,没有错误。我错过了什么?

[编辑] 显然它会在错误产生之前运行一段时间。通过在比较之前添加False,我得到输出:

http://jsfiddle.net/7jbuzu7x/

示例数据:

print(data.columns[j][:2])

1 个答案:

答案 0 :(得分:0)

看起来你的data.columns之一是int类型。

使用operator []时会调用

getitem ()。

例如,当tmp = columns[2]时,columns.__getitem__(2)被调用。