def run(self):
for dir_path in listdir(self.src_dir):
src_dir = join(self.src_dir, dir_path)
target_dir = join(self.target_dir, dir_path)
makedirs(target_dir)
for file in listdir(src_dir):
df = pd.read_csv(join(src_dir, file))
if len(df) > 0:
df['date'] = pd.to_datetime(df['date'], format='%Y-%m-%d')
offset = pd.Timedelta(days=60)
date_range = pd.date_range((df['date'].min() + offset).date(),
df['date'].max().date())
averin1 = self.rolling_mean(df['aver'], 1)
averin7 = self.rolling_mean(df['aver'], 7)
averin15 = self.rolling_mean(df['aver'], 15)
averin30 = self.rolling_mean(df['aver'], 30)
averin90 = self.rolling_mean(df['aver'], 60)
assert len(averin1) == len(averin30) == len(averin7) == len(averin15) == len(averin90) == len(
df['aver'][60:])
target_df = pd.DataFrame({
'province': df['province'][0],
'market': df['market'][0],
'type': df['type'][0],
'key': df['key'][0],
'date': date_range,
'aver': df['aver'][60:],
'averin1': averin1,
'averin7': averin7,
'averin15': averin15,
'averin30': averin30,
'averin90': averin90
})
print(join(target_dir, file))
target_df.to_csv(join(target_dir, file), header=True, index=False,
columns=['province', 'market', 'type', 'key', 'date', 'averin1',
'averin7', 'averin15', 'averin30', 'averin90', 'aver'])
评论列表
文章目录