KeyError:在应用函数期间,'col''出现在索引col'

时间:2018-05-26 13:49:11

标签: python pandas

我有以下数据集:

'\n'

目前 target | date | US_midi | UK_midi | NL_midi | BE_midi | FR_midi | SP_midi | PT_midi | SU_midi | COL_MIDI 23 1970 1 0 0 0 0 0 0 0 0 34 1970 0 0 1 0 0 0 0 0 0 34 1970 0 1 1 0 0 0 0 0 0 值设置为0,但我希望将{strong>任意 COL_MIDI更改为{除{{1} }和*_MIDI变量设置为1

因此,在示例中,最后两行将获得US_midi变量的SU_midi

为此,我写了以下函数:

1

我使用以下命令运行:

COL_MIDI

然而,每当我遇到以下错误(并且值保持为0)

def col_checker(x):
    col_list = ['UK_midi', 'NL_midi', 'BE_midi', 'FR_midi', 'SP_midi', 'PT_midi']
    for nation in col_list:
        if x[nation] != 0:
            x['COL_MIDI'] = 1

我尝试重置索引(不起作用),我检查了数据帧,并将数据帧保存为csv然后检查它 - 但无法检测到任何异常。所有列都有相同的长度和所有内容,所以我不确定索引是如何搞砸的,也不知道为什么它阻止我的脚本运行。

有没有人知道我做错了什么?

1 个答案:

答案 0 :(得分:3)

这是实现您想要的更简单的方法

col_list = ['UK_midi', 'NL_midi', 'BE_midi', 'FR_midi', 'SP_midi', 'PT_midi']
df['COL_MIDI'] = (df[col_list].sum(axis=1) > 0) * 1