以datetime的多列作为索引,而不会丢失其他列

时间:2018-10-06 06:22:18

标签: python-3.x pandas datetime

我有一个看起来像这样的数据框(更长的除外)。我想转换为日期时间索引。

      YYYY  MM  D   value
679   1900   1  1   46.42
1355  1900   2  1  137.14
1213  1900   3  1  104.25
1380  1900   4  1  149.39
1336  1900   5  1  130.33

当我使用此

df = pd.to_datetime((df.YYYY*10000+df.MM*100+df.D).apply(str),format='%Y%m%d')

我检索了一个日期时间索引,但丢失了value列。 我最后想要的是-

             value
1900-01-01   46.42
1900-02-01   137.14
1900-03-01   104.25
1900-04-01   149.39
1900-05-01   130.33

我该怎么做? 提前谢谢您的光临!

1 个答案:

答案 0 :(得分:1)

您可以使用熊猫to_datetime进行转换

df = df.astype(str)
df.index = pd.to_datetime(df['YYYY'] +' '+ df['MM']+' ' +df['D'])
df.drop(['YYYY','MM','D'],axis=1,inplace=True)

出局:

            value
1900-01-01  46.42
1900-02-01  137.14
1900-03-01  104.25
1900-04-01  149.39
1900-05-01  130.33