我的数据框的列为四分之一(PeriodIndex)-例如2010q1、2010q2。 另外,有多个列具有相同的名称,因为我已将每月数据转换为季度数据。我想从2011q1及更高版本开始说(删除对应于2010q4及以下的列)。 我正在尝试以下代码:
df.columns = df.to_datetime(df.columns).to_period('Q')
df = df[(df.columns[df.columns.year >= 2011])]
但是现在这些列重复三遍,四分之一,就像: 2011q1 2011q1 2011q1 2011q1 2011q1 2011q1 2011q1 2011q1 2011q1 2011q2 预期输出列为2011q1 2011q1 2011q1 2011q2 2011q2 2011q2 2011q3 2011q3 2011q3 2012q1 ..
这是怎么发生的?什么是过滤dateTime索引列的最佳方法?
答案 0 :(得分:1)
我相信您需要boolean indexing
和DataFrame.loc
,因为过滤器列名称为:
df = df.loc[:, df.columns.year >= 2011]