如何从熊猫列 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] 的变化。
我有一列数据为:
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] 的变化。