繁体   English   中英

(Python) astype(int) 无法从 object 中删除前导零

[英](Python) astype(int) cannot remove leading zeros from object

新年快乐!

目前,我正在处理 dataframe 列,重点是 ACCOUNT_NUMBER 列(类型“对象”):

  BRANCH_CODE ACCOUNT_NUMBER  ACCOUNT_HEAD SCHEDULE_DUE_DATE  \
        1    00001838002     211102000               NaT   
        1    00001867003     211102000               NaT   
        1    00001962020     211102000               NaT   
        1    030MZAX9082     211102000               NaT   
        1    00002404079     211102000               NaT   
        1    00010322002     211102000               NaT   
        1    00021070011     211102000               NaT   
        1    091QWEV34QA     211102000               NaT   
        1    00024605002     211102000               NaT   
        1    214QSVC45AX     211102000               NaT 

如您所见,ACCOUNT_NUMBER 中的一些值完全是数字,还有一些是数字和字母的混合。 我的目标是将完全是数字的值从“object”转换为“int”,并将数字和字母混合的值保留为“object”(忽略)。 为此,我正在尝试以下代码行:

file_consol['ACCOUNT_NUMBER']=file_consol['ACCOUNT_NUMBER'].astype(int,errors='ignore')

但是,代码行无法将数字转换为 int。 我在下面尝试了另一种选择,但它也不起作用:

file_consol_P['ACCOUNT_NUMBER']=file_consol_P['ACCOUNT_NUMBER'].astype(str).astype(int,errors='ignore')

非常感谢您对此的任何帮助或解释。 谢谢!

尝试应用:

file_consol['ACCOUNT_NUMBER']=file_consol['ACCOUNT_NUMBER'].apply(lambda x: int(x) if all(k.isdigit() for k in x) else x)

Output:

0        1838002
1        1867003
2        1962020
3    030MZAX9082
4        2404079
5       10322002
6       21070011
7    091QWEV34QA
8       24605002
9    214QSVC45AX

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM