gpt4 book ai didi

python - 带空字符串的条件 f 字符串格式

转载 作者:行者123 更新时间:2023-12-05 06:07:35 25 4
gpt4 key购买 nike

我正在开发一个小型代码生成应用程序,它加载到 Excel 文件中(使用 pandas ExcelFile + xlrd),然后将其解析为数据框(ExcelFile.parse) 用于几个类似 SQL 的操作。然后使用 maplambda 函数将存储的数据作为列表返回给文件编写器,并在特定字段上使用一些 f 字符串格式。

我遇到的问题是,并非 Excel 文件中的所有字段都按预期填充,因此我在解析数据框期间使用了 fillna(''),但是当我来到f 字符串,当我应用 :.0f 格式删除小数时,未填充的字段将导致错误。如果我不使用 fillna('') 函数, float 将正确格式化,但我随后将 nan 的多个条目作为字符串值,我可以'不知道如何转换为 ''。

例如,由于源电子表格中的 NumField3 和 NumField 4 可以为空,因此下面的代码将因 fillna('') 而失败。

return list(
map(
lambda row: f"EXEC ***_****_*.****_Register_File("
f"{row['NumField1']:.0f},{row['NumField2']:.0f},"
f"'{row['TextField1']}','{row['TextField2']}',"
f"'{row['TextField3']}','{row['TextField4']}',"
f"{row['NumField3']:.0f},{row['NumField4']:.0f});\n",
df.to_dict("records")))

我最初的方法是使用 .format()itertuples(),但这显然是一种效率较低的方法。我选择了转换为字典,这样我就可以在列表结构中保留字段名称,以便于支持。

我可能遗漏了一些非常简单的东西,但目前我看不到树木的树林。有什么建议吗?

最佳答案

我想我已经解决了。我从 ExcelFile 对象到数据框的解析中删除了 fillna(''),这导致 NaN 值出现在未填充的字段中。当数据帧记录最终通过 map lambda 方法处理时,原始 NaN 值显示为字符串“nan”,因此我包含了一个 re.sub 来整体查找该值word 并将其替换为所需的空字符串。

它不漂亮,但它有效。

return list(
re.sub(r'\bnan\b', '', i) for i in map(
lambda row: f"EXEC ***_****_*.****_Register_File("
f"{row['NumField1']:.0f},{row['NumField2']:.0f},"
f"'{row['TextField1']}','{row['TextField2']}',"
f"'{row['TextField3']}','{row['TextField4']}',"
f"{row['NumField3']:.0f},{row['NumField4']:.0f});\n",
df.to_dict("records")))

关于python - 带空字符串的条件 f 字符串格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65387668/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com