如何在不丢失Pandas数据框中的日期类型的情况下转换具有特定格式的日期

时间:2019-11-01 21:03:27

标签: python pandas datetime

我有一个需要转换为日期而不丢失日期类型格式的列的列表。要转换为日期,可以使用df1[col] = df1[col].astype('datetime64[ns]'),它给出了实际的日期类型,但是如果我希望它是'%m/%d/%Y'类型,通常在这里建议这样做:df1[col] = df1[col].dt.strftime('%m/%d/%Y'),但是在excel,现在可以将其识别为字符串类型,而不是日期类型。

我浏览了许多帖子,并在网上进行搜索以找到解决此问题的方法,并且肯定有一个方法。

这是我的代码,给出了我不想要的错误类型:

convert_date_cols = ['CutoffDate', 'ModEffectiveDate', 'IOExpirationDate', 'FirstRateAdjustmentDate', 'GF_Service_Xfer_Date', 
                    'BPODate', 'FirstPaymentDate', 'MaturityDate', 'NextRateAdjustmentDate', 'NextPaymentAdjustmentDate',
                    'ModFirstPayDate', 'ModMaturityDate', 'REO Date', 'FCDate', 'BK Date', 'Fico Score Date']

for i, col in enumerate(convert_date_cols):
    df1[col] = df1[col].astype('datetime64[ns]')
    df1[col] = df1[col].dt.strftime('%m/%d/%Y')

1 个答案:

答案 0 :(得分:1)

您正在尝试用术语解决矛盾。您明确地发布的代码将datetime变量更改为字符串表示形式。期望Excel将它当作您的约会是不合理的。请注意,但是,大多数进步取决于想要“不合理”的事情并使其实现。

我怀疑您的实际问题是使电子表格以所需的格式显示日期。为此,请不要盲目接受excel文件中的自动设置。编写一些额外的代码,以指定所需的列显示格式。有关详细信息,请参见Excel文档。然后查看您可以通过Python界面抓取多少控件。