gpt4 book ai didi

python-3.x - Python Pandas replace 替换错了

转载 作者:行者123 更新时间:2023-12-01 02:41:11 25 4
gpt4 key购买 nike

我的 DataFrame 看起来像这样:

Date  WaterTemp
1 21.4
2 20.8
3 20.4
4 20.0
5 19.9
6 20.5
7 20.8
8 21.4
9 21.7
10 22.1
11 21.9
12 21.3
13 21.5
14 21.6
15 21.4
16 21.7
17 22.4
18 22.4
19 22.5
20 22.6
21 23.1
22 23.8
23 23.8
24 23.1
25 22.9
26 23.4
27 23.6
28 23.4
29 24.1
30 24.6
31 24.1
32 23.9
33 23.6
34 23.3
35 23.2
36 23.4
37 23.1
38 22.3
39 22.4
40 22.4

我想像这样替换 WaterTemp 的值:

wt = df['WaterTemp']

for line in wt:
if line <= 11.5:
WaterTemp = WaterTemp.replace(line, "LWT")
elif line >= 22.5:
WaterTemp = WaterTemp.replace(line, "HWT")
else:
WaterTemp = WaterTemp.replace(line, "")

但 .csv 格式的结果如下所示:

1,
2,
3,
4,
5,
6,
LWT,
LWT,
LWT,
LWT,HWT
LWT,HWT
,
,
,
,
,
,HWT
,HWT
,HWT
,HWT
,HWT
HWT,HWT
HWT,HWT
HWT,HWT
HWT,HWT
HWT,HWT
HWT,HWT
HWT,HWT
29,HWT
30,HWT
31,HWT
32,HWT
33,HWT
34,HWT
35,HWT
36,HWT
37,HWT
38,HWT
39,HWT
40,HWT

因此它将日期值从 7 更改为 28。

我希望你能尽快帮助我。

最佳答案

这有点棘手,因为通常我建议使用多个带有 loc 的语句,但是一旦你将一些行设置为 str 你就引入了混合数据类型,你可以'比较 strfloat。无论如何,您可以使用嵌套的 np.where 语句实现此目的:

In [61]:
df['WaterTemp'] = np.where(df['WaterTemp'] <= 11.5, 'LWT', np.where(df['WaterTemp'] >= 22.5, 'HWT', ''))
df

Out[61]:
Date WaterTemp
0 1
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10
10 11
11 12
12 13
13 14
14 15
15 16
16 17
17 18
18 19 HWT
19 20 HWT
20 21 HWT
21 22 HWT
22 23 HWT
23 24 HWT
24 25 HWT
25 26 HWT
26 27 HWT
27 28 HWT
28 29 HWT
29 30 HWT
30 31 HWT
31 32 HWT
32 33 HWT
33 34 HWT
34 35 HWT
35 36 HWT
36 37 HWT
37 38
38 39
39 40

关于python-3.x - Python Pandas replace 替换错了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38452381/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com