这就是整个代码:
states = [1,2,3,4,5,6,7,8,9,10]
for key in Zeitreihen_2.keys():
conditions = [
(Zeitreihen_2[key]["values"]<=0.1),
(Zeitreihen_2[key]["values"]>0.1) & (Zeitreihen_2[key]["values"]<=0.2),
(Zeitreihen_2[key]["values"]>0.2) & (Zeitreihen_2[key]["values"]<=0.3),
(Zeitreihen_2[key]["values"]>0.3) & (Zeitreihen_2[key]["values"]<=0.4),
(Zeitreihen_2[key]["values"]>0.4) & (Zeitreihen_2[key]["values"]<=0.5),
(Zeitreihen_2[key]["values"]>0.5) & (Zeitreihen_2[key]["values"]<=0.6),
(Zeitreihen_2[key]["values"]>0.6) & (Zeitreihen_2[key]["values"]<=0.7),
(Zeitreihen_2[key]["values"]>0.7) & (Zeitreihen_2[key]["values"]<=0.8),
(Zeitreihen_2[key]["values"]>0.8) & (Zeitreihen_2[key]["values"]<=0.9),
(Zeitreihen_2[key]["values"]>0.9) & (Zeitreihen_2[key]["values"]<=1.01),
]
#print(Zeitreihen_2[key].head(3))
Zeitreihen_2[key]["state"] = np.select(conditions, states)
Zeitreihen_2[key]["transition"]= 0
Zeitreihen_2[key]["start"]= 0
Zeitreihen_2[key]["to"]= 0
Zeitreihen_2[key]["start"] = Zeitreihen_2[key]["state"]
Zeitreihen_2[key]["to"] = Zeitreihen_2[key]["state"].shift(-1)
Zeitreihen_2[key] = Zeitreihen_2[key].dropna()
Zeitreihen_2[key]["transition"] = Zeitreihen_2[key]["state"]+ " to " +Zeitreihen_2[key]["to"]
错误只出现在最后一行。
我不确定这个操作是否被允许,但我没想到会出现这种错误。
Zeitreihen_2[key]["transition"] = Zeitreihen_2[key]["state"]+ " to " +Zeitreihen_2[key]["to"]
在上面的行中,Zeitreihen_2[key]["state"]
是int
/float
,并且类似地,Zeitreihen_2[key]["to"]
是int
。
当您试图将int
与字符串("to"(连接时,会引发错误。
尝试在连接之前将int
转换为str
:
Zeitreihen_2[key]["transition"] = Zeitreihen_2[key]["state"].astype(str) + " to " + Zeitreihen_2[key]["to"].astype(str)
或
Zeitreihen_2[key]["transition"] = str(Zeitreihen_2[key]["state"]) + " to " + str(Zeitreihen_2[key]["to"])