首页 > 解决方案 > 防止 Pandas 剥离符号字符

问题描述

Pandas 似乎正在从表中的记录中删除前导字符,我不知道为什么。每条记录是 5 个数字,有的前面有一个符号 ( -, +, ~)。例如:~12345, +67890, -99999.

使用下面的代码,我将 .xls 中的数据读取到数据框中,删除一个字段,重命名一个字段,重命名工作表并重新排列列。最后,它被保存为 .xlsx。

最终产品看起来不错,除了记录中CDP_PLACEFP的符号已被剥离。即,上面的值变为123456, 67890-99999由于某种原因,减号没有像其他值一样被删除)。

初始表包含正确的值。我需要给出明确的命令来防止这种情况吗?

arcpy.TableToExcel_conversion(cheapet_cdp_changes, cheapet_table_initial)
df = pd.read_excel(cheapet_table_initial)
df = df.drop(['FID'], axis=1) #Drop FID column
df = df.rename(columns={"TEMP_FP":"CDP_PLACEFP"}) #Rename TEMP_FP to CDP_PLACEFP
df = df.reindex(columns = ['PRIM_ID', 'STATEFP', 'COUNTYFP', 'CDP_PLACEFP']) #Rearrange columns
df.to_excel(os.path.join(pf, 'CHEAPET_{}.xlsx'.format(stcou)), sheet_name = 'CHEAPET', index=False)

标签: pythonpandas

解决方案


使用converters参数 inread_excel()读取为字符串。

df = pd.read_excel(cheapet_table_initial, converters={'your_column_name':str, ...)

参考pandas.read_excel


推荐阅读