首页 > 解决方案 > 使用python在文件中添加特定日期

问题描述

我有一个包含 2 列的 csv 文件:id、val 其中 id 是当天的数字(总共 365) 是否可以将数字 id 转换为格式为“%d-%m-%Y”的日期?事实上,我想添加 2015 年的所有日子,例如 01-01-2015 等。我如何在 python 中使用 pandas 来做到这一点?

以下是文件的一部分和所需的输出

"id"    "val"
1   49
2   48
3   46
4   45


"date"  "val"
01-01-2015  49
02-01-2015  48
03-01-2015  46
04-01-2015  45

标签: pythonpandasdate

解决方案


使用pd.tseries.offsets.Day

df['date'] = pd.Timestamp('2015-01-01') \
             + df['id'].sub(1).apply(pd.tseries.offsets.Day)

替代方案,由@HenryEcker 提出:

df['date'] = pd.Timestamp('2015-01-01') \
             - pd.Timedelta(days=1) \
             + df['id'].apply(pd.tseries.offsets.Day)
>>> df['id'].sub(1).apply(pd.tseries.offsets.Day)
0    <0 * Days>
1         <Day>
2    <2 * Days>
3    <3 * Days>
Name: id, dtype: object


>>> df
   id  val       date
0   1   49 2015-01-01
1   2   48 2015-01-02
2   3   46 2015-01-03
3   4   45 2015-01-04

推荐阅读