我需要根据新的其他列将值1或0分配给新列。 我大约有30列带有二进制值(1或0)的列,还有其他具有数字,连续值(例如200)的变量。我想避免使用多个OR编写逻辑条件,因此我想知道是否存在一种简便快捷的方法。 例如,创建一个具有列名的列表,如果该对应行的所有列中的值至少为1,则为新列分配1。
示例:
{
"input": {
"urn": "dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6YzQ4ZDUxNDNhMDRiNDAxNmI3ODYxY2NlMzQ2ZDkyNjdfZmFjaWxpdHlfOTUvZWIyYzMzNDgtNDAxYS00ZjQ3LTgwM2EtMjM1OGYwYmI0YjY2LnJ2dA"
},
"output": {
"destination": {
"region": "us"
},
"formats": [
{
"type": "svf",
"views": [
"3d"
],
"advanced": {
"generateMasterViews": true
}
}
]
}
}
预期:
a1 b1 d4 ....
1 0 1
0 0 1
0 0 0
...
非常感谢您的帮助
答案 0 :(得分:0)
这是一个简单的解决方案:
df = pd.DataFrame({'a1':[1,0,0,1], 'b1':[0,0,0,1], 'd4':[1,1,0,0], 'num':[12,-2,0,3]})
df['New'] = df[['a1','b1','d4']].any(1).astype('int')
df
a1 b1 d4 num New
0 1 0 1 12 1
1 0 0 1 -2 1
2 0 0 0 0 0
3 1 1 0 3 1