我正在使用 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”之后。
如果能以不同的方式解决问题或以我想要的垃圾数据删除方式解决问题,我将不胜感激:)
答案 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')