每次重复的日期时间行增加一年

联邦密码服务

大家,早安。假设我有以下数据框:

df_array = {"date":["2016/11/4", "2016/11/4", "2016/11/4" , "2014/3/2", "2015/5/6", "2015/5/6"],  "id":["1", "1", "1" , "2", "3", "3"]}
df = pd.DataFrame(df_array)
df["date"] = pd.to_datetime(df["date"])

哪个输出:

| id | date      |
|----|-----------|
| 1  | 2016/11/4 |
| 1  | 2016/11/4 |
| 1  | 2016/11/4 |
| 2  | 2014/3/2  |
| 3  | 2015/5/6  |
| 3  | 2015/5/6  |

我想创建一个名为“ new_date”的新列,该列从每个唯一行的“ date”列中获取日期,在该年的第一天进行转换,然后每次重复行都添加一年,如下所示:

| id | date      | new_date |
|----|-----------|----------|
| 1  | 2016/11/4 | 2016/1/1 |
| 1  | 2016/11/4 | 2017/1/1 |
| 1  | 2016/11/4 | 2018/1/1 |
| 2  | 2014/3/2  | 2014/1/1 |
| 3  | 2015/5/6  | 2015/1/1 |
| 3  | 2015/5/6  | 2016/1/1 |

我可以运行以下命令来创建new_date列并按以下方式填充它:

df["new_date"] = df.drop_duplicates()["date"].dt.year.apply(lambda x: datetime.datetime(x, 1, 1))

哪个输出:

| id | date      | new_date |
|----|-----------|----------|
| 1  | 2016/11/4 | 2016/1/1 |
| 1  | 2016/11/4 | 2016/1/1 |
| 1  | 2016/11/4 | 2016/1/1 |
| 2  | 2014/3/2  | 2014/1/1 |
| 3  | 2015/5/6  | 2015/1/1 |
| 3  | 2015/5/6  | 2015/1/1 |

但是,我不确定每次重复行时如何增加日期。有什么建议?

耶斯列尔

GroupBy.cumcount按组使用年份计数器,加到年份并最后转换为日期时间:

y = df['date'].dt.year
df['new_date'] = pd.to_datetime(df.groupby(y).cumcount() + y, format='%Y')
print (df)
        date id   new_date
0 2016-11-04  1 2016-01-01
1 2016-11-04  1 2017-01-01
2 2016-11-04  1 2018-01-01
3 2014-03-02  2 2014-01-01
4 2015-05-06  3 2015-01-01
5 2015-05-06  3 2016-01-01

或者,您可以指定带有日期的月份:

y = df['date'].dt.year
df['new_date'] = pd.to_datetime((df.groupby(y).cumcount() + y).astype(str) + '-01-01')

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

填写一年的日期时间

来自分类Dev

计算日期小于一年的行

来自分类Dev

创建/修改日期增加一年

来自分类Dev

过去一年的PostgreSQL当前日期时间

来自分类Dev

Clojure Java时间-日期提前一年了吗?

来自分类Dev

使用日期和时间获取一年中其余时间的日期

来自分类Dev

NSDateFormatter-增加一年?

来自分类Dev

一年增加几天-Java

来自分类Dev

在Rail 4中将日期增加一年。nil:NilClass的未定义方法“ +”

来自分类Dev

在PHP中将一年中的日期转换为日期时间

来自分类Dev

posix时间加一年

来自分类Dev

SQL可变日期减去一年

来自分类Dev

在今天的日期加上一年

来自分类Dev

如何在Joda Time中解析没有一年的日期时间字符串?

来自分类Dev

SQL根据一年中的时间返回标准日期

来自分类Dev

Darksky循环一年的每日数据-日期时间错误

来自分类Dev

SQL过滤掉任何一年中的特定月份,日期和时间

来自分类Dev

创建新列以存储现有日期时间列中的一年的季度

来自分类Dev

PHP 获取当前日期时间 + 一年(还询问是否安全)

来自分类Dev

将日期时间 sql 值更新整整一年

来自分类Dev

使用php pdo为一年中的每个日期添加一行

来自分类Dev

与上一年相比,记录平均增加

来自分类Dev

将一年中的日期转换为日期

来自分类Dev

将一年中的日期转换为日期

来自分类Dev

如何从一年中的日期获取日期

来自分类Dev

php日期从加入日期倒数到未来的一年

来自分类Dev

php日期从加入日期倒数到未来的一年

来自分类Dev

自新一年以来,日期未返回过去的一年

来自分类Dev

如何将日期转换为一年(一年中的某天)的位置?

Related 相关文章

热门标签

归档