如何将熊猫的日期时间索引从“月末”更改为“月”

时间:2021-07-15 18:14:03

标签: python pandas

我正在使用 pandas 来分析来自 quandl 的所有州的房价指数的一些数据: HPI_Data = quandl.get("FMAC/HPI_AK")

数据看起来像这样:

              HPI Alaska
Date
1975-01-31    35.105461 
1975-02-28    35.465209
1975-03-31    35.843110

等等。

我有第二个数据框,里面有一些特殊的日期:

          Date
Name
David    1979-08
Allen    1980-08
Hugo     1989-09

此处“日期”的值是“字符串”类型而不是“日期”。 我想从特殊数据框中的每个日期返回 6 个月,并查看 HPI 数据框中的值。 我想使用 .loc 但我无法将第一个数据帧的索引从“END OF MONTH”转换为“MONTH”。即使在重新采样到“1D”然后回到“M”之后。

如果能以不同的方式解决问题或以我想要的垃圾数据删除方式解决问题,我将不胜感激:)

1 个答案:

答案 0 :(得分:0)

不确定我是否理解正确。因此,如果这不正确,请澄清您的问题。

您可以使用 pd.to_datetime 将字符串转换为 pandas 日期时间对象,并使用 format 参数指定如何解析字符串

import pandas as pd

# Creating a dummy Series
sr = pd.Series(['2012-10-21 09:30', '2019-7-18 12:30', '2008-02-2 10:30',
                '2010-4-22 09:25', '2019-11-8 02:22'])

# Convert the underlying data to datetime 
sr = pd.to_datetime(sr)

# Subtract 6 months of the datetime series
sr-pd.DateOffset(month=6)

关于将日期时间更改为月份,即 2012-10-21 09:30 --> 2012-10 我会这样做:

sr.dt.to_period('M')
相关问题