python - 使用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
解决方案
使用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