回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>这是<a href="https://stackoverflow.com/questions/22615288/group-data-by-seasons-using-python-and-pandas/22623876?noredirect=1#22623876">earlier question</a>的扩展。</p>
<p>我想使用Pandas和Python迭代我的.csv文件,并按季节(和年份)对数据进行分组,计算一年中每个季节的平均值。目前的季度脚本是一月三月,四月六月等。我希望季节与月份相关联</p>
<p><code>- 11: 'Winter', 12: 'Winter', 1: 'Winter', 2: 'Spring', 3: 'Spring', 4: 'Spring', 5: 'Summer', 6: 'Summer', 7: 'Summer', \
8: 'Autumn', 9: 'Autumn', 10: 'Autumn'</code></p>
<p>我有以下数据:</p>
<pre><code>Date,HAD
01/01/1951,1
02/01/1951,-0.13161201
03/01/1951,-0.271796132
04/01/1951,-0.258977158
05/01/1951,-0.198823057
06/01/1951,0.167794502
07/01/1951,0.046093808
08/01/1951,-0.122396694
09/01/1951,-0.121824587
10/01/1951,-0.013002463
</code></pre>
<p>。。。</p>
<p>一直到</p>
^{pr2}$
<p>这是前面问题中的代码</p>
<pre><code>import pandas as pd
import os
import re
lookup = {
11: 'Winter',
12: 'Winter',
1: 'Winter',
2: 'Spring',
3: 'Spring',
4: 'Spring',
5: 'Summer',
6: 'Summer',
7: 'Summer',
8: 'Autumn',
9: 'Autumn',
10: 'Autumn'
}
os.chdir('C:/Users/n-jones/testdir/output/')
for fname in os.listdir('.'):
if re.match(".*csv$", fname):
data = pd.read_csv(fname, parse_dates=[0], dayfirst=True)
data['Season'] = data['Date'].apply(lambda x: lookup[x.month])
data['count'] = 1
data = data.groupby(['Season'])['HAD', 'count'].sum()
data['mean'] = data['HAD'] / data['count']
data.to_csv('C:/Users/n-jones/testdir/season/' + fname)
</code></pre>
<p>我希望我的输出csv文件是:</p>
<pre><code>Autumn 1951, Mean, Winter 1951/52, Mean, Spring 1952, Mean, Summer 1952, Mean,
Autumn 1952, Mean, Winter 1952/53, Mean, Spring 1953, Mean, Summer 1953, Mean,
</code></pre>
<p>等等。。。</p>
<p>我希望这有点道理。</p>
<p>提前谢谢你!</p>