DataFrame列数据到系列

时间:2017-10-14 12:24:18

标签: python pandas dataframe series

我有以下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

我原以为我可以遍历每一行,每个月分别抽出并添加到一个系列中。我想知道是否有更好的方法。

1 个答案:

答案 0 :(得分:1)

unstackto_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])