读取 csv 文件时删除前导零

Remove leading zeros when reading a csv file

我有一个看起来像这样的 CSV 文件 -

    Location ID      Location Name
        3543459      A
         20541       B
          C320       C
           ...       ..

当我使用 pd.read_csv 读取文件时,我得到这样的结果 -

Location ID      Location Name
   03543459      A
   0020541       B
   000C320       C
       ...       ..

如何避免前导零?我做了一些研究,我能找到的所有问题都是基于在 df 中生成前导零。

使用post处理str.lstrip:

df['Location ID'] = df['Location ID'].str.lstrip('0')
df['Location ID'] = df['Location ID'].apply(lambda x: x.lstrip('0'))

我在行下混合输入了..

 df['col'] = df['col'].apply(lambda x:x.lstrip('0') if type(x) == str else x)

对于任何具有更复杂字符串(例如 'AB00003423')的人,您可以使用 Series.str.extract() 和正则表达式:

extractedNumbers = df.ID_col.str.extract('^[A-Z]+0+([0-9]+)$')

这将 return 正则表达式括号(或“捕获组”)内的任何内容的列。

通常,数据帧 return 每个捕获组包含 1 列,请改用 expand=False 到 return 系列。