【发布时间】:2019-10-16 15:38:51
【问题描述】:
我有一个包含以下日期字段的数据框:
463 14-05-2019
535 03-05-2019
570 11-05-2019
577 09-05-2019
628 08-08-2019
630 25-05-2019
Name: Date, dtype: object
我必须将其格式化为 DDMMAAAA。这就是我在循环中所做的事情 (for idx, row in df.iterrows():):
- 我正在使用正则表达式删除
\-字符:df.at[idx, 'Date'] = re.sub('\-', '', df.at[idx, 'Date']) - 然后使用 apply 来强制执行和一个带前导零的 8 位字符串
df['Date'] = df['Date'].apply(lambda x: '{0:0>8}'.format(x))
但即使 df['Date'] 字段有 8 位数字,df 上的前导 0 为 0,当将其导出到 csv 时,导出文件中的前导零也会被删除,如下所示。
df.to_csv(path_or_buf=report, header=True, index=False, sep=';')
csv 中的字段:
Dt_DDMMAAAA
30102019
12052019
7052019
26042019
3052019
22042019
25042019
2062019
我知道我一定是在此过程中遗漏了要点,但我就是不知道是什么问题(或者如果它甚至是一个问题,而不是一个误用的方法)。
【问题讨论】:
-
我认为了解您的方法在文件中产生正确的输出非常重要,但您可能会错误地读取文件。如果您添加有关如何检查/阅读 CSV 的更多详细信息,这将对这个答案有很大帮助。
-
我通过外部集成将其导出到 csv 以将其发送到另一个系统(我无权访问它)。并且要求我将其作为 csv 发送。
-
感谢您指出这一点,我正在通过在 wps 中打开 csv 进行验证,但现在我在文本编辑器中检查了前导零!所以问题与代码无关,而是我打开它的方式.... -_-
标签: python regex pandas dataframe export-to-csv