【发布时间】:2019-09-10 04:49:04
【问题描述】:
我希望针对 100 年来的选定美国地点(尤其是 8 个地点)对 100 年的气候数据进行数据分析。我有一个pandas dataFrame 设置了最高温度、最低温度、平均温度、降雪量、总降水量以及日、年和月值的列(然后,我还有一个基于日期时间值的索引) .现在,我想设置一个 for 循环来打印每年 90 华氏度或更高的第一个最高温度,但只有第一个。最终,我想将其缩小到我的 8 个位置中的每一个,但首先我只想让 for 循环工作。
对 for 循环的各种迭代进行了实验。
for year in range(len(climate['Year'])):
if (climate['Max'][year] >=90).all():
print (climate.index[year])
break
不出所料,我提供的循环输出打印了第一个 90 度日周期(从 1919 年开始,即我的数据框的开始)并中断。
for year in range(len(climate['Year'])):
if (climate['Max'][year] >=90).all():
print (climate.index[year])
break
1919-06-12 00:00:00
没关系。如果我拿出休息声明,所有的 90 度日都会打印出来,包括同一年的多个日。我只想打印每年的第一个值。我是否需要设置第二个 for 循环以在一年中递增?如果我在尝试循环通过计数器时明确说明年份,如下所示,循环仍然从 1919 年开始,最终达到越界索引。我知道这个逻辑是错误的。
count = 1919
while count < 2019:
for year in range(len(climate['Year'])):
if (climate[climate['Year']==count]['Max'][year] >=90).all():
print (climate.index[year])
count = count+1
真诚感谢您的任何意见。
【问题讨论】:
标签: python-3.x pandas