如何将字符串转换为日期格式

时间:2020-03-08 09:40:37

标签: python pandas dataframe class

大家好,我们将为您提供帮助。我正在分析具有以下日期格式的一系列(一组列):

'1060208'

前三个数字表示年份,其中第一个数字“ 1”用于比较。在上述情况下,年份为2006。第4位和第5位数字代表月份,其余数字代表日期。我想将这些日期转换成这样

106-02-08

以便我可以使用 .groupby 每月或每年进行排序。到目前为止,这是我的代码

    class Data:
        def convertdate(self):
            self.dates.apply(lambda x:x[0:3] + '-' + x[3:5] + '-' + x [5:7])
        return self.dates

运行此命令时,出现错误:

    TypeError: 'int' object is not subscriptable

能否请您告诉我出了什么问题?还是可以建议其他方法来做到这一点?非常感谢。

2 个答案:

答案 0 :(得分:1)

假设date是一个int列表,则可以执行以下操作:

input_dates = [1060208, 1060209]
input_dates_to_str = map(lambda x: str(x), input_dates)
output = list(map(lambda x: '-'.join([x[0:3], x[3:5], x[5:]]), input_dates_to_str))

无论如何,在处理日期时,建议您使用datetime软件包。

答案 1 :(得分:0)

您的问题的快速答案:1060208是一个整数,整数不能下标,因此您需要将其更改为字符串。

其他一些想法: 您的数据在哪里?这一切都在熊猫数据框中吗?如果是这样,为什么还要编写类来转换数据?有更好/更快的方法。像将整数日期转换为字符串一样,去掉第一位数字,然后将其转换为日期时间。

“在1处放置用于比较的目的”是什么意思?可以这样记录,但显然日期和标志(我认为是某种标志)不应在同一字段中表示。那么,为什么不将1放在自己的字段中呢?