如何在Python中提取DataFrame列的前5个字符?以Zip列为例
问题解决:Zip列仅保留前5个字符
问题原因
你代码里执行了df_all['Zip'].str[:5],但这只是生成了截取后的临时结果,没有将结果赋值回原DataFrame的Zip列,所以原数据的Zip列完全没变化。
修正方案
把截取后的结果重新赋值给df_all['Zip'],同时考虑Zip列可能是数值类型的情况,先转成字符串再截取:
# 先将Zip转为字符串,再截取前5位并覆盖原列 df_all['Zip'] = df_all['Zip'].astype(str).str[:5]
补充说明
- 你之前已经用
df_all = df_all.replace(np.nan, 'N/A', regex=True)把空值替换成了字符串'N/A',所以转字符串时不会出现报错; - 如果原始数据里Zip是整数类型,
astype(str)能确保所有值都被正确处理; - 执行完这行代码后,再查看或导出DataFrame,Zip列就只会显示前5个字符了。
内容的提问来源于stack exchange,提问作者qtsweeney3535
相关产品推荐
相关产品推荐

