将pandas中的datetime索引转换为单独的列

时间:2015-05-22 15:53:31

标签: python pandas

                   0         1          2         3         4         5
2015-01-01  2.847222 -5.197222 -13.900000  1.913889  0.872222  3.988889
2015-01-02  3.202778 -6.925000 -15.386111  0.911111  0.858611  4.352778

在上面的数据框中,最左边的列是索引并表示日期时间。如何添加分别代表年,月和日的3列?结果如下:

            0    1  2   3         4          5         6         7         8
2015-01-01  2015 1  1   2.847222 -5.197222 -13.900000  1.913889  0.872222  3.988889
2015-01-02  2015 1  2   3.202778 -6.925000 -15.386111  0.911111  0.858611  4.352778

1 个答案:

答案 0 :(得分:1)

这是一种方法

更改列名称

In [162]: df.columns = range(3, 9)

In [163]: df
Out[163]:
                   3         4          5         6         7         8
2015-01-01  2.847222 -5.197222 -13.900000  1.913889  0.872222  3.988889
2015-01-02  3.202778 -6.925000 -15.386111  0.911111  0.858611  4.352778

然后将年,月,日添加到0,1,2列

In [164]: df[0] = df.index.year

In [165]: df[1] = df.index.month

In [166]: df[2] = df.index.day

In [167]: df
Out[167]:
                   3         4          5         6         7         8     0  \
2015-01-01  2.847222 -5.197222 -13.900000  1.913889  0.872222  3.988889  2015
2015-01-02  3.202778 -6.925000 -15.386111  0.911111  0.858611  4.352778  2015

            1  2
2015-01-01  1  1
2015-01-02  1  2