example of dataframe我有一个包含布尔值的pandas数据框。此信息与用户在系统中的活动有关。列代表时间和行-用户ID。如果用户当时处于活动状态,则为true;否则,则为false。我想分配状态而不是布尔值。 例如,如果用户处于活动状态,则状态为1,如果他在一定时间内未处于活动状态,则状态为0,而用户离开系统-状态为-1。非活动用户与离开系统的用户之间的区别在于,对于非活动用户False,之后是True,而对于离开系统的用户,始终为False。
输入看起来像:
inputt = pd.DataFrame([[True, False, False, False], [True, False, True, True]])
预期输出类似于:
output = pd.DataFrame([[1, -1, -1, -1], [1, 0, 1, 1]])
我试图编写检查以下列并根据以下内容分配状态的函数:
def row_to_status(row, columns=range(2,25)):
# -1 = dead, 0 = inactive, 1 = alive
status_row = []
for column in columns:
status = 1
if not row[column]:
status = -1
next_cols = range(column+1, columns[-1]+1)
if row[next_cols].sum():
status = 0
status_row.append(status)
return status_row
但是,它给我有关使用范围的错误。 Range(2,25)用于遍历各列。
请帮助我解决此问题。谢谢!