python - 防止 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)
解决方案
使用converters
参数 inread_excel()
读取为字符串。
df = pd.read_excel(cheapet_table_initial, converters={'your_column_name':str, ...)
推荐阅读
- python - Pygame 代码屏幕随着游戏不断打开
- oracle - 在 Oracle 应用程序中为并发编程在 INV 组织级别上设置冲突域的方法
- node.js - 如何在 API Gateway 授权方后面调用 lambda
- .htaccess - 在 Joomla htaccess 中强制重定向到 /index.php/url
- javascript - Javascript:替换字符串中的标记模板文字
- angularjs - AngulaJS中的“isNull”具有非定义值
- php - Apache 2.4 将 Symfony 1.4 index.php 显示为纯文本
- azure - 在 Log Analytics 工作区下的 Azure 资源中设置 Azure 函数时出错
- python-3.x - 终端中无法识别 Python
- c - 如何用鼠标在 Turbo-C 中触发动画?