如何使用 scipy 优化获取 2 个参数



我有数据

diff_time
0
124
56
87
40
168
449
13

我应该写一个函数,我可以自动获得 2 个参数a and b,其中

for el in df['diff_time']:
if el > a:
el = b
else:
el = continue

如何解决此任务?使用scipy.optimize是真的吗?

我认为您可以使用maskdf.diff_time > a创建的boolean mask

a = 100
b = 33
print (df.diff_time > a)
0    False
1     True
2    False
3    False
4    False
5     True
6     True
7    False
Name: diff_time, dtype: bool
df['b'] = df.diff_time.mask(df.diff_time > a, b)
print (df)
diff_time   b
0          0   0
1        124  33
2         56  56
3         87  87
4         40  40
5        168  33
6        449  33
7         13  13

如果需要更改列diff_time请使用ix

df.ix[df['diff_time']>= a ,'diff_time'] = b
print (df)
diff_time
0          0
1         33
2         56
3         87
4         40
5         33
6         33
7         13
a = 100
b = 33
df['diff_time'].apply(lambda el: b if el > a else el)
0     0
1    33
2    56
3    87
4    40
5    33
6    33
7    13
Name: diff_time, dtype: int64

最新更新