从Pandas中的日期中删除时间戳

kknvjkwl  于 2023-06-04  发布在  其他
关注(0)|答案(2)|浏览(226)

我的公司给了我一份工作,让我使用Python来自动化Excel任务,以保存时间。现在我已经使用代码将excel加载到jupyter notebook。现在所有的日期在我的excel工作表加载后更改为日期与时间戳。

import pandas as pd
file_path = pd.ExcelFile(r'C:\Users\User\Downloads\Report4.xlsx')

workbook = pd.read_excel(file_path, sheet_name=None, dtype=str)

我使用了dtype = 'str',因为有些列的值以0开头,但如果我按原样加载,它们就不会被打印出来。
现在我从列标题中删除了时间戳。但是我不能从单元格值中删除它。我在网上试过了,但都没有用。我看到了stackoverflow的帖子,但这对我也不起作用。
我想将日期格式从2021-05-10 00:00:00更改为mm/dd/yyyy。
如果有人能帮我解决这个问题就太好了。谢谢你。

qojgxg4l

qojgxg4l1#

我不确定你是否有字符串日期时间值,并希望在整个过程中处理字符串或使用日期时间对象。无论哪种方式都不难。但是假设所有字符串,那么你可以简单地使用split()来提取元素,然后重新组合。

d = "2021-05-10 00:00:00"

my_date = d.split()[0]
dl = my_date.split('-')
my_date_final = f"{dl[1]}/{dl[2]}/{dl[0]}"

print(my_date_final)

给予

05/10/2021

假设所有的值都有相同的格式,那么你可以将代码 Package 在函数中,并使用df.applymap来转换所需的列:

def func(x):
    dl = x.split()[0].split('-')
    return f"{dl[1]}/{dl[2]}/{dl[0]}"

df2 = df[['col1', 'col2']].applymap(func)
pdtvr36n

pdtvr36n2#

如果你有一个名为“date_time”的 Dataframe DF,其中包含格式为“2021-05-10 00:00:00”的数据,你首先需要将日期与时间分开:

import pandas as pd

DF[['date', 'time']] = DF["date_time"].str.split(" ", expand = True)

这将添加两个新的列名为“日期”和“时间到你的 Dataframe
现在定义日期格式

DF = pd.to_datetime(DF["date"], format='%mm.%dd.%yyyy')

相关问题