我的csv文件具有这样的数据
Zip Population
00601 700
00602 1000
33112 12000
67890 90000
用于读取我编写的csv文件
import pandas as pd
pop_by_zip = pd.read_csv('population_census.csv',delimiter="|")
如果人口在(0,1000)之间,我想做10次
for row in popzip:
if(0> popzip['Population'] <= 1000)
for x in range(10)
if(0> popzip['Population'] <= 10000)
for x in range(70)
这是我的问题,我想在条件指定的人口范围内过滤邮政编码和人口。
答案 0 :(得分:1)
这里有几个问题。第一个也是最明显的一点是,如果循环通过了要运行10次的检查,则保证循环运行20次,因为两者都检查popzip['Population'] > 0
。您还将检查循环不变式放在错误的位置。而且,正如评论中指出的那样,您应该执行0 < x <= 1000
和0 < x <= 10000
。最后,我不确定您说要“循环x次”的意思。您是要运行整个for循环x次还是要遍历前x个元素?
population = popzip['Population']
end = 0
if (0 < population <= 1000):
end = 10
elif (1000 < population <= 10000):
end = 20
else:
# some third thing?
for row in popzip[:end]:
# rest of your code
这是如何工作的:您在开始循环之前先检查值(节省重复检查),然后根据需要取前10或20个元素。