在panda数据帧中将日期时间格式20200916 00:00:00转换为20200916

2024-06-09 21:10:51 发布

您现在位置:Python中文网/ 问答频道 /正文

下面是python中的panda数据帧

full_name  serial  Date_YMD                  prc1     prc2    volume
 bottle_a  AX80    2020-09-22 00:00:00   12874.50  12927.75   61023.0 
 bottle_a  AX80    2020-09-23 00:00:00   12878.50  12926.75   61023.0
 bottle_a  AX80    2020-09-24 00:00:00   12872.50  12928.75   61023.0

我想将Date_YMD列中的日期格式值转换成转换后的样子

full_name  serial  Date_YMD        prc1     prc2    volume
 bottle_a  AX80    20200922    12874.50  12927.75   61023.0 
 bottle_a  AX80    20200923    12878.50  12926.75   61023.0
 bottle_a  AX80    20200924    12872.50  12928.75   61023.0

我正在使用python 3.8


Tags: 数据namebottledate格式serialpandafull
2条回答

您需要首先将Date_YMD列转换为datetime列:

In [731]: df.Date_YMD = pd.to_datetime(df.Date_YMD)

然后可以使用strftime方法格式化datetime列,如下所示:

In [735]: df.Date_YMD = df.Date_YMD.dt.strftime('%Y%m%d')

In [736]: df
Out[736]: 
  full_name serial  Date_YMD     prc1      prc2   volume
0  bottle_a   AX80  20200922  12874.5  12927.75  61023.0
1  bottle_a   AX80  20200923  12878.5  12926.75  61023.0
2  bottle_a   AX80  20200924  12872.5  12928.75  61023.0

假设Date_YMD列是datetime对象,如果不将其转换为 那是由{}引起的

这样就可以完成任务,但它会将datetime对象转换为字符串

df['Date_YMD'] = (df['Date_YMD'].dt.date).apply(lambda x: x.strftime("%Y%m%d"))

相关问题 更多 >