【发布时间】:2015-07-31 02:35:42
【问题描述】:
我有一个带有时间戳索引和大约 100,000 行的 DataFrame。通过
df['year'] = df.index.year
创建一个包含每一行年份的新列很容易。现在我想找出我的时间序列中缺少哪些年份。到目前为止,我知道我可以使用 groupby 来获取“某物”,这可以让我找到唯一值。因此,
grouped = df.groupby('year')
grouped.groups.keys()
会给我数据集中存在的年份。我现在可以用
构建一个完整的年份向量pd.date_range(df.index.min(), df.index.max(), freq='AS')
然后通过重新索引,我应该能够找到缺失的年份作为具有 NaN 值的年份。
然而,对于这样看似简单的任务来说,这听起来非常复杂,而 grouped.groups 操作实际上需要相当长的时间;大概是因为它不仅查找唯一键,而且还建立了属于每个键的行的索引列表,这是我这里不需要的功能。
有什么方法可以更直接/更有效地获取数据框列的唯一元素?
【问题讨论】:
标签: python pandas time-series dataframe