【问题标题】:Add 0 to Phone Number in a Column将 0 添加到列中的电话号码
【发布时间】:2022-02-01 16:15:13
【问题描述】:

我有一个包含 NAN 的列(电话号码),我需要保留所有数据,所以我做了一个

df['X'] = df['X'].fillna("0").astype(int)

我的电话号码是“浮点”类型,所以我填写了 NA 以转换为 Int。

但问题是我的电话号码格式错误,我需要在所有电话号码前添加一个“O”。

我做了这个

df['X'] = df['X'].apply(lambda x: '{0:0>9}'.format(x))

但问题是它在我的旧 NAN 行中添加了额外的 000。

有没有办法在我的电话号码中正确添加 0,我可以保留我的 NAN 而不是将它们设置为 0

我忘了说,我想在电话号码下面加0,而不是最后。

非常感谢。

【问题讨论】:

  • 你说的在电话号码下面加0是什么意思?在电话号码的开头?这就是zfill 所做的。

标签: python pandas integer nan


【解决方案1】:

您可以分配给数据框的过滤版本:

df.loc[df['A'].notna(), 'A'] = df['A'].apply(lambda x: '{0:0>9}'.format(x))

【讨论】:

  • 试过这个但是告诉我 TypeError: object cannot be convert to an IntegerDtype 我的列已经是 Int64 类型,真的很奇怪
【解决方案2】:

先填写手机,再填写nan值:

df['X'] = df['X'].astype('str').str.zfill(9).fillna('0')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-01
    • 2015-11-25
    • 2020-12-10
    • 2020-11-28
    相关资源
    最近更新 更多