Pandas.read_excel读取日期并转换为时间戳,我需要一个字符串。

11

我使用.read_excel将一个大的Excel文件读入pandas,其中包含日期列。在被读入pandas时,日期会默认转换成时间戳。由于文件很大,我希望读取日期时将其作为字符串。

如果不可能的话,那么我至少希望能够以与原始文件相同的格式(例如"8/18/2009")将日期导出回Excel。

我的两个问题是:

  1. 我可以避免在pandas中将Excel日期转换为时间戳吗?
  2. 如果不可能,如何高效地将日期以原始格式写回?

1
当使用pandas读取时,日期默认为时间戳,或者至少在将其导出回Excel时是这样的。这两种情况中的哪一种? - IanS
根据这个问题中的评论,无法避免将Excel日期转换为时间戳:https://dev59.com/LFsX5IYBdhLWcg3wLM3K - IanS
你可以尝试这个:https://dev59.com/y14b5IYBdhLWcg3wtjvY#28769537 - IanS
第三个注释中的代码"f.write(vbscript.encode('utf-8'))"在Python 3中无法工作。我将其放入2to3转换器中,但它没有进行任何更改。有什么建议吗? - user18101
什么是错误信息? - IanS
显示剩余3条评论
3个回答

3
  1. 我不确定如何读取日期并使用read_excel而不转换为时间戳。
  2. 由于在将日期读入数据帧时已将其转换为日期时间,这里是如何以原始格式打印日期 - 我使用了“mm/dd/yyyy”。
import pandas as pd

df = pd.read_excel(
    "file_to_read.xlsx",
    sheet_name="sheetname",
)
writer = pd.ExcelWriter(
    "file_to_write.xlsx",
    engine="xlsxwriter",
    datetime_format="mm/dd/yyyy",
)
df.to_excel(
    writer,
    index=False,
    header=True,
    sheet_name="sheetname",
)

1

1

我曾经遇到过同样的问题。 以下是解决方法:

df = pd.read_excel(excel_link, sheet_name, dtype=str)

如果您不介意将df或整个列转换为字符串


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接