如何从熊猫列 post 操作中保留前导零?

How to keep leading zeroes from a panda column post operation?

我有一列数据为:

Date
'2021-01-01'
'2021-01-10'
'2021-01-09'
'2021-01-11'

我只需要将“年和月”作为一列并将其作为整数而不是像“2021-01-01”这样的字符串应该保存为 202101。(我不需要日期部分)。

当我尝试清理数据时,我能够做到,但它会删除前导零。

df['period'] = df['Date'].str[:4] + df['Date'].str[6:7]

这给了我:

Date
20211
202110
20219
202111

如您所见,从 1 月到 9 月,returns 只有 1 到 9,而不是 01 到 09,这造成了差异。如果我手动添加一个零作为合并的一部分,它将使“2021-10”成为 2021010。我希望它只是作为没有连字符的年份和月份,并在几个月内保留前导零。请参阅下面我希望它如何出现在新专栏中。

Date
202101
202110
202109
202111

我可以使用循环来完成,但效率不高。在 python 中有更好的方法吗?

去除引号,将日期强制转换为所需格式的日期时间,并将其转换为整数。下面的代码

df['Date_edited']=pd.to_datetime(df['Date'].str.strip("''")).dt.strftime('%Y%m').astype(int)



      Date         Date_edited
0  '2021-01-01'       202101
1  '2021-01-10'       202101
2  '2021-01-09'       202101
3  '2021-01-11'       202101

由于对 Python.

slice notation 的使用存在误解,因此删除了前导零

尝试将您的代码更改为:

df['period'] = df['Date'].str[:4] + df['Date'].str[5:7]

注意从 [6:7] 到 [5:7] 的变化。