从 Pandas 日期时间列中提取月份和年份值
在 Pandas Dataframe 中处理时间序列数据时,通常需要提取特定的值用于分析或可视化目的的日期时间值的组件。在本例中,我们的目标是从包含 pandas.tslib.Timestamp 对象的列中仅提取月份和年份。
已尝试多种方法来提取这些值。频率为“M”的 resample() 方法失败,因为它需要 DatetimeIndex 或 periodIndex。由于 Timestamp 对象缺少 getitem 属性,lambda 函数方法失败。
一个优雅的解决方案是将 Dataframe 的索引设置为 ArrivalDate 列。这会将日期时间值转换为索引标签。然后可以使用索引执行后续重采样操作:
df.index = df['ArrivalDate']
但是,为了将单独的年份和月份值提取到新列中,建议使用不同的方法:
df['year'] = pd.DatetimeIndex(df['ArrivalDate']).year df['month'] = pd.DatetimeIndex(df['ArrivalDate']).month
或者,dt 访问器可用于简洁的语法:
df['year'] = df['ArrivalDate'].dt.year df['month'] = df['ArrivalDate'].dt.month
这些操作创建新的包含提取值的名为“year”和“month”的列。这允许灵活使用这些组件进行进一步的分析和操作。
以上是如何从 Pandas 日期时间列中有效提取年份和月份?的详细内容。更多信息请关注PHP中文网其他相关文章!