背景
我有五年的NO2测量数据,在csv文件中,每个位置和年份一个文件。我已将所有文件以相同格式加载到数据帧中:
Date Hour Location NO2_Level
0 01/01/2016 00 Street 18
1 01/01/2016 01 Street 39
2 01/01/2016 02 Street 129
3 01/01/2016 03 Street 76
4 01/01/2016 04 Street 40
目标
对于每个数据帧计数,NO2\u级别大于150的次数,并输出该值。你知道吗
所以我写了一个循环,从正确的目录创建所有的数据帧,并适当地清理它们。你知道吗
问题
无论我尝试过什么,我知道检查的结果都是不正确的,例如: -给定年份中每个位置的计数值相同(可能但不太可能) -在我知道计数应该有任何正数的一年里,每个位置都返回0
我尝试过的
我已经尝试了很多方法来获得每个数据帧的这个值,比如让列成为一个系列:
NO2_Level = pd.Series(df['NO2_Level'])
count = (NO2_Level > 150).sum()'''
使用pd计数():
count = df[df['NO2_Level'] >= 150].count()
这两种方法最接近我想要输出的内容
测试示例
data = {'Date': ['01/01/2016','01/02/2016',' 01/03/2016', '01/04/2016', '01/05/2016'], 'Hour': ['00', '01', '02', '03', '04'], 'Location': ['Street','Street','Street','Street','Street',], 'NO2_Level': [18, 39, 129, 76, 40]}
df = pd.DataFrame(data=d)
NO2_Level = pd.Series(df['NO2_Level'])
count = (NO2_Level > 150).sum()
count
预期产出
因此,我试图让它为格式为Location,year,count(of condition)的每个数据帧输出一行:
Kirkstall Road,2013,47
Haslewood Close,2013,97
...
Jack Lane Hunslet,2015,158
所以上面的例子会产生
Street, 2016, 1
实际值 每年每个地点都会产生相同的结果,在某些年份(2014年),当检查时,计数似乎根本不起作用,应该有:
Kirkstall Road,2013,47
Haslewood Close,2013,47
Tilbury Terrace,2013,47
Corn Exchange,2013,47
Temple Newsam,2014,0
Queen Street Morley,2014,0
Corn Exchange,2014,0
Tilbury Terrace,2014,0
Haslewood Close,2015,43
Tilbury Terrace,2015,43
Corn Exchange,2015,43
Jack Lane Hunslet,2015,43
Norman Rows,2015,43
下面是一个随机生成的样本的解决方案:
生成的df示例:
输出:
希望这有帮助。你知道吗
样本数据:
输出:
相关问题 更多 >
编程相关推荐