我有一个需要转换为日期而不丢失日期类型格式的列的列表。要转换为日期,可以使用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')
答案 0 :(得分:1)
您正在尝试用术语解决矛盾。您明确地发布的代码将datetime变量更改为字符串表示形式。期望Excel将它当作您的约会是不合理的。请注意,但是,大多数进步取决于想要“不合理”的事情并使其实现。
我怀疑您的实际问题是使电子表格以所需的格式显示日期。为此,请不要盲目接受excel文件中的自动设置。编写一些额外的代码,以指定所需的列显示格式。有关详细信息,请参见Excel文档。然后查看您可以通过Python界面抓取多少控件。