我有以下DataFrame,其中包含一些降雨量数据。我想重新格式化这个,以便我得到一个包含24个条目的系列,其中包含' Month-Year'这样就可以更容易地将其绘制成一条线。
JAN FEB MAR APR MAY JUN JUL AUG SEP OCT NOV DEC
Year
2015 96.6 58.9 23.5 18.6 62.9 26.7 60.0 108.6 67.9 58.1 78.0 80.4
2016 131.8 54.2 80.2 51.2 64.1 91.3 17.4 38.8 50.9 29.8 100.6 17.4
我原以为我可以遍历每一行,每个月分别抽出并添加到一个系列中。我想知道是否有更好的方法。
答案 0 :(得分:1)
将unstack
与to_frame
一起使用,即
ndf = df.unstack().to_frame().sort_index(level=1)
0 Year JAN 2015 96.6 FEB 2015 58.9 MAR 2015 23.5 APR 2015 18.6 MAY 2015 62.9 JUN 2015 26.7 JUL 2015 60.0 AUG 2015 108.6 SEP 2015 67.9 OCT 2015 58.1 NOV 2015 78.0 DEC 2015 80.4 JAN 2016 131.8 FEB 2016 54.2 MAR 2016 80.2 APR 2016 51.2 MAY 2016 64.1 JUN 2016 91.3 JUL 2016 17.4 AUG 2016 38.8 SEP 2016 50.9 OCT 2016 29.8 NOV 2016 100.6 DEC 2016 17.4
如果您需要索引作为字符串,那么
ndf.index = ['{} {}'.format(i,j) for i,j in ndf.index.values]
如果您需要它作为日期时间,那么
ndf.index = pd.to_datetime(['{} {}'.format(i,j) for i,j in ndf.index.values])