我使用Jupyter笔记本和Pandas
我有一个大的CSV文件在python。有一个名为date的列,其日期为YYYY-MM-DD格式。有没有办法把所有的日子都转换成整数?
含义:我想从所有日期中减去一个日期(例如:2020.01.01),并得到一个简单的整数作为天数。并将日期替换为整数
我试了一段时间,但想不出解决办法
您可以为每个日期计算参考日期的天数:
ref_date = pd.to_datetime('1/1/2021')
df['int_day'] = (pd.to_datetime(df.Date) - ref_date).dt.days
如果你的列已经是Datetime格式:
df['int_day'] = (df.Date - ref_date).dt.days
下面是一个示例(str
类型的'Date'列):
import pandas as pd
df = pd.DataFrame(
pd.date_range('1/1/2021', '1/15/2021', freq='D').strftime('%Y-%m-%d'),
columns=['Date']
)
ref_date = pd.to_datetime('1/1/2021')
df['int_day'] = (pd.to_datetime(df.Date) - ref_date).dt.days
这里是数据框df
:
Date int_day
0 2021-01-01 0
1 2021-01-02 1
2 2021-01-03 2
3 2021-01-04 3
4 2021-01-05 4
5 2021-01-06 5
6 2021-01-07 6
7 2021-01-08 7
8 2021-01-09 8
9 2021-01-10 9
10 2021-01-11 10
11 2021-01-12 11
12 2021-01-13 12
13 2021-01-14 13
14 2021-01-15 14
如果日期列被解析为时间戳
df['Date'] = df['Date'].dt.strftime("%Y%m%d").astype(int)
如果没有被解析
df['Date'] = df['Date'].str.replace('-', '').astype(int)