LoginSignup
0
0

More than 3 years have passed since last update.

7日移動平均を使った計算

Posted at

コロナ感染の7日間の移動平均の計算プログラムを作って見ました。
当日のデータを入れれば、翌日にもそのデータがファイルに残り使えるように工夫してみました。
また 7日間の新規発生数に対する評価も入れてみました。埼玉県の人口データ等を使っています。
埼玉県の人口710万人、 7日あたりの新規発生合計15人/10万人
を使っています。
なにせPythonをボケ防止のためで学習している高齢者なので、皆さんから見たら
もっとうまい方法があるかもしれませんが、とにかく得られている知識だけで作ってみました。
これから更に勉強して改善していこうと思っています。
途中 確認のためのprintが多いですが、これは自分の確認のために行ったものですので、お許しを
願います。

Data input and Save

data : list

use file, write and read to file

import csv
import codecs
import os

def read_data(filename):
data = []
with open(filename, 'r') as f:
result = f.read()
print('result=',result)

def save_data(filename):
data = []
with open(filename, 'a+') as f:

    while True:
        x = input('add Numb. x=',)
        data.append(x)


        if x == '':
            break
        f.write(x + '\n')
        print('data=',data)

    data = list(data)
    print('Good luck!! Save data!! saved data =',data)

def calc_ave(filename):
data = []
data1 =[]
with open(filename, 'r') as f:
for line in f:
data += [int(line.strip())]
result = f.read()

print('data=', data)
data1 = data[-7:]
print('data1=',data1)
data = data1
data = list(data)
print('data=', data)
total = 0
N = 7
total = sum(data)
print('total=', total)
ave = total//N
print('ave=' , ave)
p = 710 # hundred thousand of population of saitama
a = 15 #allowable number in 10 hundred thousand
base = 10
max_number = (p*a)/base
print('max_number=',max_number)
q = p*a /base
ps = round((total/q)*100)
print('ps=', ps, '%/ in max_number')
if total <= max_number:
print('Safty')
else:
print('Not safty')

if name== 'main':
numbers = read_data('sample.csv')
numbers = save_data('sample.csv')
ave = calc_ave('sample.csv')

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0