Справочная информация
У меня есть данные измерений NO2 за пять лет в CSV-файлах - по одному файлу для каждого местоположения и года.Я загрузил все файлы в кадры данных pandas в одном и том же формате:
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_Level больше 150 ивыведите это.
Итак, я написал цикл, который создает все кадры данных из правильных каталогов и очищает их соответствующим образом.
Проблема
Все, что я пробовал, дает результаты, которые я знаю о проверке, неверно, например: -значение для каждого местоположения в данном году одинаково (возможно, но маловероятно) - в течение года, когда я знаю, что должно быть любое положительное число для подсчета, каждое местоположение возвращает 0
То, что я пробовал
Я испробовал множество подходов для получения этого значения для каждого кадра данных, например, сделать столбец серией:
NO2_Level = pd.Series(df['NO2_Level'])
count = (NO2_Level > 150).sum()'''
Использование pd.count ():
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