从一个Pandas列中提取的多个列

时间:2016-05-25 08:47:51

标签: python pandas

我的Pandas数据框中有一个(已解析的)datetime列。我现在需要根据这一列生成多个列,一个列有年份,一个列有月份,小时,星期几等。我目前正在做一些个人申请,但它是一个大型数据集,我多次迭代df。有没有更好的模式来实现这一目标?应用程序可以返回一个数据帧然后粘贴在它后面吗?

1 个答案:

答案 0 :(得分:3)

如果dtype已经datetime,那么您可以使用向量化日期时间访问者dt添加列:

In [11]:
df = pd.DataFrame({'date':pd.date_range(dt.datetime(2016,1,1), end = dt.datetime(2016,1,10))})
df

Out[11]:
        date
0 2016-01-01
1 2016-01-02
2 2016-01-03
3 2016-01-04
4 2016-01-05
5 2016-01-06
6 2016-01-07
7 2016-01-08
8 2016-01-09
9 2016-01-10

In [13]:    
df['year'],df['month'],df['day'], df['day_of_week'] = df['date'].dt.year, df['date'].dt.month, df['date'].dt.day, df['date'].dt.dayofweek
df

Out[13]:
        date  year  month  day  day_of_week
0 2016-01-01  2016      1    1            4
1 2016-01-02  2016      1    2            5
2 2016-01-03  2016      1    3            6
3 2016-01-04  2016      1    4            0
4 2016-01-05  2016      1    5            1
5 2016-01-06  2016      1    6            2
6 2016-01-07  2016      1    7            3
7 2016-01-08  2016      1    8            4
8 2016-01-09  2016      1    9            5
9 2016-01-10  2016      1   10            6