【发布时间】:2021-10-28 19:27:54
【问题描述】:
我尝试过的只是:
df['buyer_zip']=df['buyer_zip'].replace('-', 0)
df['buyer_zip']=df['buyer_zip'].replace('', 0)
df['buyer_zip']=df['buyer_zip'].str[:5]
df["buyer_zip"].fillna( method ='ffill', inplace = True)
df["buyer_zip"].apply(int)
我在名为 Buyer_zip 和 Item_zip 的 pandas 数据框中有两列,它们分别是买方和商品的邮政编码。这些邮政编码有 4 种格式。一个是 5 位邮政编码(例如:12345),一个是 5+4 位邮政编码(12345-1234),一个是 9 位邮政编码(123456789),最后一个是“EC180”。所以,最后一种格式是字母数字。总共有 1500 万条记录。我感到震惊,我必须将所有这些字母数字值转换为数字。当尝试做同样的事情时,我遇到了错误:int() 的无效文字,基数为 10:'EC180'。有人可以帮助我如何找到我的数据列中的所有单词并将其替换为 00000。感谢任何帮助。但没有一个给出如何找到该列中的单词并将其替换为数字的答案
样本数据:
buyer_zip
97219
11415-3528
EC180
907031234
预期输出
buyer_zip
0 97219
1 114153528
2 0
3 907031234
【问题讨论】:
-
包括数据帧的样本和预期的输出。
-
它有很多记录--1500万。所以无法附加任何东西
-
请将您的问题从代码中提取出来。这让人无法知道你在问什么。
-
1500 万张是相当多的。但是您有 4 种类型,那么 df 具有 1 列和 4 行怎么样。也许再多几行来显示您遇到问题的字母表的不同示例。
-
@tdelaney 请理解我并不是特别严格。 OP是一个新人,我已经为他设置了一个基础线。问一个好问题的做法真的是在帮助别人。此外,我不认为你更新预期的输出真的是 OP 想要的,他说字符串
"00000"作为默认值......