Q<br>pd.read_csv('zip_mapping.gz',compression='gzip' ,header=None, sep=',')<br>但不知何故,我在拉链浮法读,像<br>,因为我不知道zip文件中,列前我在数据读取方面,所以我不能设置PD D型.read_csv。<br>我想将zip更改为int,但由于缺少值,我得到“无法将NA转换为int”错误。<br>试图<br>str(zip).rstrip('0').rstrip('.')<br>但得到这个<br>'0 501.0\n1 1220.0\n2 1509.0\n3 1807.0\n4 2047.0\nName: zip, dtype: float64'<br>其实我想转换压缩在浮动到STR像501,1220,1509,1807,2047 话,我可能会进一步填充前导零。<br>有什么建议吗? 谢谢。<br>您可以使用Series.astype方法来转换浮动为int然后串,这里我使用df指你从CSV中读取和df.zip来指代拉链列中的数据帧(相应调整):<br>df.zip.astype(int).astype(str).str.zfill(5) #0 00501 #1 01220 #2 01509 #3 01807 #4 02047 #Name: zip, dtype: object<br>如果NA列,你想保持他们的是:<br>df['zip'] = df.zip.dropna().astype(int).astype(str).str.zfill(5) df # zip #0 NaN #1 01220 #2 01509 #3 01807 #4 02047<br>另一种选择使用字符串格式器:<br>df.zip.apply(lambda x: x if pd.isnull(x) else "{:05.0f}".format(x)) #0 NaN #1 01220 #2 01509 #3 01807 #4 02047 #Name: zip, dtype: object<br>这工作正常。谢谢。 –newleaf<br>只是想知道为什么我使用str(zip),仍然得到dtype为'float64' –newleaf<br>仍然得到ValueError:无法将NA转换为整数 –newleaf