确保数据框列中的所有值都在两个值之间

时间:2018-06-19 07:59:44

标签: python python-3.x pandas dataframe

假设我有一个看起来像这样的数据框,我想确保列'T'中的所有值都在129和130之间。即当一个值大于130时,它应该被减去,直到它位于129和之间。 130.同样,如果该值小于129,我想继续加1,直到该值介于129和130之间。

    T
0   129.3
1   129.1
2   128.9
3   128.9
4   128.9
5   129.6
6   129.4
7   129.2
8   130.1
9   129.8
10  129.7
11  130.4
12  130.7
13  127.9
14  130.4
15  130.0
16  129.0
17  128.5
18  128.7
19  129.5
20  129.9
21  130.1
22  129.6
23  129.3
24  128.7
25  128.6
26  128.8
27  129.3
28  129.6
29  129.2
30  129.1
31  129.0
32  128.7
33  128.6
34  128.8
35  129.1
36  129.5
37  130.0
38  129.4
39  129.3

出于某种原因,以下代码似乎不起作用:

for i in df['T']: 
    if i<129:
        while i<129:
            i+=1
    if i>130: 
        while i>130:
            i-=1

1 个答案:

答案 0 :(得分:2)

如果您的结果与添加或减去1:

的值相同
import numpy as np
df['T'] = df['T'] % 1 + 129

如果您只想将值绑定在129到130之间,请使用:

df['T'] = df['T'].clip(129, 130)