嘿,我查看了一些帖子,但我找不到直接答案。我正在开发一个pandas DataFrame,它有两列ZipCode和ZipCodePlusFour。部分ZipCodePlusFour单元格已填充。所有ZipCode单元格都已填充。问题是ZipCode有9位数。所以我试图摆脱9位Zipcodes的最后4位数字并将它们放在ZipCodePLusFour中。
{{subtract 35 price.without_tax.value}}
我的问题出在第二行。 if语句执行它应该执行的操作但是else应该什么都不做。我尝试使用None,但它使用None填充单元格,而不是保留已经在单元格中的值。
答案 0 :(得分:1)
如果传递的长度小于5位数,则可以这样做:
df['ZipCode'] = df.ZipCode.apply(lambda x: x[-4:] if len(x) > 5 else x)
但你可以做得更简单,无需检查长度:
df['ZipCode'] = df.ZipCode.apply(lambda x: x[-4:])
答案 1 :(得分:0)
你想要的只是将字符串修剪到最多5个位置。你可以df.ZipCode.str[:5]
?
In [78]: df
Out[78]:
ZipCode
0 123456789
1 123
2 0
For,5 place zipcodes
In [79]: df.ZipCode.str[:5]
Out[79]:
0 12345
1 123
2 0
Name: ZipCode, dtype: object
对于,zipcodes中的额外(> 5)字符部分
In [80]: df.ZipCode.str[5:]
Out[80]:
0 6789
1
2
Name: ZipCode, dtype: object