Pandas Date(列)到int的转换,在大型数据库中



我使用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)

最新更新