:グループに少なくとも2つの方法は、「今年の日」であり、あなたはそうのような文字列または文字列monthday
組み合わせとして年の数値日のいずれかを行うことができますここで異常な入力を処理する別の方法を見つけることを望むなら、いくつかのコードがあります。
コードは、入力ファイルを一度に1行ずつ読み込み、日付と値の要素を取り出し、それらを簡単に解析してStringIOオブジェクトに入れることができる行に再アセンブリします。
パンダは、csvファイルのように、そこからそれらを読み取ります。私はグループ化コードを
import pandas as pd
import re
from io import StringIO
file_name = 'temp.txt'
for_pd = StringIO()
with open(file_name) as f:
for line in f:
pieces = re.search(r'([0-9]{4}) - ([0-9]{,2}) - ([0-9]{,2}) - ([0-9.]+)', line).groups()
pieces = [int(_) for _ in pieces[:3]] + [pieces[3]]
print ('%.4i-%.2i-%.2i,%s' % tuple(pieces), file=for_pd)
for_pd.seek(0)
df = pd.read_csv(for_pd, header=None, names=['datetimes', 'values'], parse_dates=['datetimes'])
print (df.set_index('datetimes').groupby(pd.TimeGrouper('D')).mean().dropna())
print (df.set_index('datetimes').groupby(pd.TimeGrouper('W')).mean().dropna())
から出力しています。
values
datetimes
1980-01-01 1.2
1980-01-02 1.3
1980-01-03 1.4
1980-01-04 1.5
1980-01-05 1.6
1980-01-06 1.7
1980-01-07 1.8
values
datetimes
1980-01-06 1.45
1980-01-13 1.80
少なくとも、numpy配列のサンプルを見る方がよいでしょう。 –
時系列のものには本当に 'pandas'を使うべきです。これはすべて組み込まれており、うるう年を処理する必要はありません。例えば、 –
Arrivillaga氏に同意することは非常に困難です。 –