python - 修改 Pandas 数据框以列出年月日

标签 python pandas

我想修改我在下面创建的数据框:

from datetime import date
from dateutil.rrule import rrule, DAILY, YEARLY
from dateutil.relativedelta import *
import pandas

START_YR = 2010
END_YR = 2013

strt_date = datetime.date(START_YR, 1, 1)
end_date  = datetime.date(END_YR, 12, 31)

dt = rrule(DAILY, dtstart=strt_date, until=end_date)

serie_1 = pandas.Series(np.random.randn(dt.count()), \
        index = pandas.date_range(strt_date, end_date))

如何创建一个将年月日作为单独列的数据框?

最佳答案

只访问 datetime 会快很多属性:

df['date'] = df.index.date
df['year'] = df.index.year
df['month'] = df.index.month

将时间与列表理解方法进行比较:

In [25]:

%%timeit
df['month'] = [ts.to_period('M') for ts in df.index]
df['year'] = [ts.to_period('Y') for ts in df.index]
df['month_int'] = [ts.month for ts in df.index]
1 loops, best of 3: 664 ms per loop
In [26]:

%%timeit
df['date'] = df.index.date
df['year'] = df.index.year
df['month'] = df.index.month

100 loops, best of 3: 5.96 ms per loop

因此使用日期时间属性的速度提高了 100 倍以上

关于python - 修改 Pandas 数据框以列出年月日,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29224258/

相关文章:

python - 将 DataFrame 中的 pandas 系列从字符串(金融缩写)转换为数字

python - 安装Keras破坏了Conda虚拟环境(Windows 10)

Python nosetest 不起作用,但直接运行它可以使用 matplotlib 的 @image_comparison

python - 在 Python 中读取文件时的编码问题

python - 给定指定顺序,获取列中所有重复元素的索引

python - 组合日期时间行及其值

python - 我的 Python 正则表达式与文本文件中 YYYY 日期格式的任何数据都不匹配

python - 使用 np.random 生成值

Python pandas 每月重新采样每周工作不会

python - Pandas 格式符号 xlsx