我尝试遍历数据帧的行,并在迭代时修改一些值。数据帧如下所示:
Time WindSpeed SkyCover Temp DewPt RH Press Precip
3 21:53 11 Light Snow -1.7 -6.1 72% 1003.1 0
4 20:53 N 11 Mostly Cloudy -2.2 -6.1 75% 1002.8 0
5 19:53 Calm Mostly Cloudy -2.8 -6.7 75% 1002.7 0
6 18:53 Calm Overcast -1.7 -6.7 69% 1002.4 0
7 17:53 N 5 Overcast -1.7 -7.2 66% 1002.6 0
8 16:53 NE 8 Overcast -1.1 -7.2 64% 1002.5 0
…
我已经编写了下面的循环来遍历数据帧并改变windspeed列。当风速大于1 KPH时,此列为矢量,当低于该阈值时,此列为文本值“Calm”。我希望这个循环逐行查看列值,如果它是平静的,则将“1”放在它的位置上,但如果它大于1,则删除方向并只保留标量值。你知道吗
for i in df.index:
if df.at[i, 2] == 'Calm':
df.at[i, 2] = 1
else:
df.at[i, 2] = re.findall('[0-9]+', df.at[i, 2])[0]
正如您在上面的dataframe中所看到的,这个循环在第一行数据上起作用,但在第一行数据之后不会继续。我没有收到任何错误消息,它为什么会在第一行之后停止。你知道吗
使用
apply
:添加另一种方法:
相关问题 更多 >
编程相关推荐