删除基于年份的PeriodIndex类型的列

时间:2019-01-14 09:21:36

标签: python pandas

我的数据框的列为四分之一(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索引列的最佳方法?

1 个答案:

答案 0 :(得分:1)

我相信您需要boolean indexingDataFrame.loc,因为过滤器列名称为:

df = df.loc[:, df.columns.year >= 2011]