【发布时间】:2018-06-26 13:25:36
【问题描述】:
我的数据如下所示:
+----+------+-------+
| ID | YEAR | MONTH |
+----+------+-------+
| A | 2017 | 1 |
| B | 2017 | 2 |
| C | 2017 | 3 |
| D | 2017 | 4 |
| E | 2017 | 5 |
| F | 2017 | 6 |
+----+------+-------+
我想添加一个名为DATE 的新列,它存储一个由YEAR 和MONTH 列的日期对象组成的新列。像这样的:
+----+------+-------+------------+
| ID | YEAR | MONTH | DATE |
+----+------+-------+------------+
| A | 2017 | 1 | 2017-01-01 |
| B | 2017 | 2 | 2017-02-01 |
| C | 2017 | 3 | 2017-03-01 |
| D | 2017 | 4 | 2017-04-01 |
| E | 2017 | 5 | 2017-05-01 |
| F | 2017 | 6 | 2017-06-01 |
+----+------+-------+------------+
我使用以下代码来创建列,但想知道是否有更简洁的“Pythonic”单行。类似于df['DATE']=date(df.year, df.month, 1) 的东西。
import pandas as pd
from datetime import date
ID = ['A', 'B', 'C', 'D', 'E', 'F']
YEAR = [2017, 2017, 2017, 2017, 2017, 2017]
MONTH = [1, 2, 3, 4, 5, 6]
df = pd.DataFrame({'ID': ID, 'YEAR': YEAR, 'MONTH': MONTH})
DATE = []
for y, m in zip(df.YEAR, df.MONTH):
DATE.append(date(y, m, 1))
df['DATE'] = DATE
【问题讨论】:
标签: python pandas date datetime dataframe