【发布时间】:2021-02-21 09:07:06
【问题描述】:
我在 pandas 数据框中有一列名为 zipcode。一些行包含 NaN 值,一些包含正确的字符串格式,如“160 00”,其余包含错误的格式,如“18000”。我想要的是跳过 NaN 值(而不是丢弃它们)并将错误的邮政编码转换为正确的邮政编码;例如:“18000”->“180 00”。 是否可以通过应用 lambda 来做到这一点?到目前为止,我得到的只是这个:
df['zipcode']apply(lambda row: print(row[:3] + ' ' + row[3:]) if type(row) == str else row)
数据框示例:
df = pd.DataFrame(np.array(['11100', '246 00', '356 50',
np.nan, '18000', '156 00', '163 00']), columns=['zipcode'])
zipcode
0 11100
1 246 00
2 356 50
3 nan
4 18000
5 156 00
6 163 00
谢谢。
【问题讨论】:
-
ddddd格式中是否存在所有格式不正确的值,如果我理解正确,您想将这些值更改为ddd dd?另外,如果可能的话,您能否在zipcode列中包含一个小样本? -
没有灵丹妙药。你最好在这里定义一个函数来处理你的所有错误并返回正确的格式;您仍然可以将其与 apply 一起使用
-
@ShubhamSharma 是的,我想更改值以形成 ddd dd。
pd.DataFrame(np.array(['11100', '246 00', '356 50',np.nan,'18000', '156 00', '163 00']), columns=['zipcode'])
标签: python-3.x pandas dataframe lambda