我有以下数据集:
'\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然后检查它 - 但无法检测到任何异常。所有列都有相同的长度和所有内容,所以我不确定索引是如何搞砸的,也不知道为什么它阻止我的脚本运行。
有没有人知道我做错了什么?
答案 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